题目大意:给出n种样式的sugar以及s dollar,然后要去买其中一个,但是有一个规则是剩余的钱只能用甜品来退换。问能换到最多的甜品的数量数多少?
解题思路:越来越感叹英语的重要性了!太坑了...题理解了半天,结果发现很简单,人家三分钟就破题了,我还在理解题,毫无face呀...说下这个题吧!就是寻找下面给出样式的零钱部分的最小值。但是要注意的是如果余0,则前面的x可以等于s的,否则不能取等。然后要处理掉为0的情况,直接将其转化为100就OK了,详见code。
题目来源:http://codeforces.com/problemset/problem/463/A
code:
#include <iostream>
#include <cstdio>
using namespace std;
const int INF=1000;
int n,s,x,y,flag;
int main(){
while(scanf("%d%d",&n,&s)!=EOF){
int min=INF;flag=0;
for(int i=0;i<n;i++){
scanf("%d%d",&x,&y);
if(y==0){
y=100;
if(x<=s && min>y){min=y; flag=1;}
}
else if(x<s && min>y){min=y; flag=1;}
}
if(flag) printf("%d\n",100-min);
else printf("-1\n");
}
return 0;
}