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")