第一次写博客啊,以前一直发在qq空间里面防毒,真的很不好,伟大的唐老师和chc告诉我应该写博客,那就来吧。
怎么说呢?这道题的思路很简单,但是就是实现的出了一点问题,我一开始想用一个rest的指针来指向剩余时间,但是好麻烦的。看大白书上写用上次终端时间和这次终端时间进行比较,就得出结果了。
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{
int listen , work;
}a[1100];
bool cmp(node a ,node b)
{
return a.work > b.work;
}
int main()
{
int n;
int cnt = 0;
while(~scanf("%d", &n)){
if(n == 0) break;
for(int i = 0 ; i < n ; i++) scanf("%d%d",&a[i].listen , &a[i].work);
sort(a , a + n , cmp);
int ans = 0 , s =0;
for(int i = 0 ; i < n ; i++){
s += a[i].listen;
ans = max(ans , s + a[i].work);
// printf("***%d",ans);
}
printf("Case %d: ",++cnt);
printf("%d\n",ans);
}
return 0;
}