Meituan 2021 Escola Recrutamento Questões de programação de teste escrito (Perguntas de teste de programação geral, Sessão 1) 3. Plano de economia de dinheiro para viagem de Xiaomei

618 em 2020 não é mais apenas um festival de compras, mas também um festival de comida para viagem Meituan. Xiaomei preparou vários vouchers de desconto desde o início. Para "economizar dinheiro" ao máximo, é claro que ela opta por usar todos os Run out!
Esses vouchers têm um limite de uso, ou seja, quantos pedidos de yuans podem ser usados. Se você usar uma 2-tupla <x, y> para representar um voucher, ou seja, você precisa gastar x yuan para obter um desconto de y yuan, então deve-se observar que nem todos os vouchers têm x maior ou igual a y, awareness meituan Alguns vouchers para x<y também serão lançados. Se x<y, por exemplo, x=1, y=2, nenhum pagamento é necessário para a compra de 1 produto em yuan e nenhum reembolso será dado ao usuário.
Posso perguntar se Xiaomei quer usar esses vouchers, quanta comida ela pode comprar no máximo, garantindo o valor mínimo total do pagamento?
Nota:
1. Apenas um voucher pode ser usado para um pedido.
2. Ao mesmo tempo, o valor mínimo do pagamento total é satisfeito e o valor do takeaway comprado é o mais alto. Por exemplo, se dois descontos forem todos de 1 yuan takeaway, um com um preço original de 3 yuan e o outro com um preço original de 4 yuans, escolha aquele com um preço de 4 yuans.
3. Como existem muitos comerciantes em Meituan, podemos encontrar pelo menos um produto para comprar por qualquer preço.

Limite de tempo: 1 segundo para C/C++, 2 segundos para outras linguagens
Limite de espaço: 256M para C/C++, 512M para outras linguagens

Descrição da entrada:
A primeira linha da entrada contém apenas um inteiro positivo n, indicando o número de vouchers de propriedade da Xiaomei. (1<=n<=50000)
Existem n linhas a seguir, e cada linha tem dois números inteiros x e y, o que significa que um voucher pode ser usado se o valor do pedido exceder x yuan, e pode ser usado com um desconto de e yuan. (1<=x<=10000,1<=y<=10000)

Descrição da saída:
A saída contém apenas dois números inteiros positivos, separados por um espaço, que representam, respectivamente, o valor da comida comprada por Xiaomei e seu valor real de pagamento.

Exemplo 1
Exemplo de entrada:
3
5 3
10 5
1 2
Exemplo de saída:
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")

Acho que você gosta

Origin blog.csdn.net/weixin_45184581/article/details/129465000
Recomendado
Clasificación