HihoCoder--1993--再買優惠

題目描述:
小Hi在飽了麼外賣APP公司工作。最近他的老闆交給他一項任務,完成"再買優惠"的功能。
這個功能是這樣的:假設一家外賣店從低到高有N檔滿減優惠,依次是滿A1元減B1元、滿A2元減B2元、…… 、滿AN元減BN元。用戶當前總計購買了C元的外賣,則APP會提示"已減X元,再買Y元可減Z元"。其中Y元是距離下一檔優惠的金額,特別的如果C>=AN,則只提示"已減X元"。
請你幫小Hi計算X, Y和Z的值。
輸入描述:
第一行包含2個整數N和C。
以下N行,每行包含2個整數Ai, Bi。
1 <= N <= 20 1 <= C <= 1000000
A1 < A2 < A3 < … < AN B1 < B2 < B3 < … < BN
輸出描述:
3個或1個整數代表答案
輸入:
3 40
20 10
50 25
100 50
輸出:
10 10 25
題意:
字面意思
題解
直接搞
代碼:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int maxn = 100 + 5;
struct point{
    int a,b;
};

point arr[maxn];


int main(){
    int n,c;
    while(scanf("%d%d",&n,&c)!=EOF){
        for(int i = 1; i <= n; i ++){
            scanf("%d%d",&arr[i].a,&arr[i].b);
        }
        int cnt = 0;
        for(int i = 0; i < n; i ++){
            if(arr[i].a < c){
                cnt = i;
            }
            else break;
        }
        if(c >= arr[n].a){
            printf("%d\n",arr[n].b);
        }
        else if(cnt == 0){
            printf("%d %d %d\n",0,(arr[1].a - c),arr[1].b);
        }
        else{
            printf("%d %d %d\n",arr[cnt].b,(arr[cnt + 1].a - c),arr[cnt + 1].b);
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章