Meituan 2021 学校採用筆記試験 - プログラミング問題 (プログラミング試験一般問題、セッション 1) 3. Xiaomei のお持ち帰り節約プラン

2020 年の 618 は単なるショッピング フェスティバルではなく、美団テイクアウト フェスティバルでもあります。シャオメイは早い段階からさまざまな割引クーポンを用意しました。最大限に「お金を節約する」ために、もちろん彼女はすべてのラン アウトを使用することにしました。
これらのバウチャーには使用限度額、つまり使用できる人民元の注文数があります。2 タプル <x, y> を使用してバウチャーを表す場合、つまり、y 元の割引を受けるために x 元を費やす必要がある場合、すべてのバウチャーの x 以上が含まれるわけではないことに注意する必要があります。 y、良心 meituan x<y の一部のバウチャーも発売されます。x<y、たとえば x=1、y=2 の場合、1 元の製品の購入には支払いは必要なく、ユーザーには返金されません。
シャオメイさんがこれらのクーポンを使い切りたい場合、最低支払総額を確保しながら最大でどのくらいの量の食べ物を購入できるか聞いてもいいですか?
注:
1. 1 回のご注文に対して使用できるクーポンは 1 枚のみです。
2. 同時に、最低支払総額が満たされ、購入した持ち帰りの価値が最も高くなります。たとえば、2 つの割引がすべて 1 元の持ち帰りの場合、1 つは元の価格が 3 元で、もう 1 つは元の価格が 3 元です。元の価格は4元なので、4元の価格のものを選択してください。
3. Meituan には多くの販売業者が存在するため、任意の価格で購入できる商品が少なくとも 1 つは見つかります。

制限時間:C/C++の場合は1秒、その他の言語の場合は2秒
容量制限:C/C++の場合は256M、その他の言語の場合は512M

入力の説明:
入力の最初の行には、Xiaomei が所有する伝票の数を示す正の整数 n のみが含まれています。(1<=n<=50000)
次に n 行あり、各行には 2 つの整数 x と y が含まれます。これは、注文金額が x 元を超える場合にバウチャーを使用でき、割引で使用できることを意味します。 y元。(1<=x<=10000,1<=y<=10000)

出力の説明:
出力には、スペースで区切られた 2 つの正の整数のみが含まれます。これらはそれぞれ、Xiaomei が購入した食品の価値と実際の支払額を表します。

例1
入力例:
3
5 3
10 5
1 2
出力例:
17 7

#include <iostream>
using namespace std;

int main() {
    
    
    int n;
    cin>>n;
    int sum=0,pay=0;
    for(int i=0;i<n;i++){
    
    
        int x,y;
        cin>>x>>y;
        if(x>=y){
    
    
            sum+=x;
            pay+=(x-y);
        }
        else{
    
    
            sum+=y;
        }
    }
    cout<<sum<<' '<<pay;
    return 0;
}
// 64 位输出请用 printf("%lld")

Guess you like

Origin blog.csdn.net/weixin_45184581/article/details/129465000