会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
c语言源码
Codeforces Problem 37B - Computer Game
按题目要求写就可以
#include<cstdio> #include<stdlib.h> #include<string.h> struct point{ int pow; int dmg; int num; }str[1010]; int visit[1010]; int ans1[1010],ans2[1010]; int cmp(const void *a,const void *b){ struct point *aa=(struct point *)a; struct point *bb=(struct point *)b; return bb->pow-aa->pow; } int Min(int a,int b){ return a<b?a:b; } int main(){ int n,max,res,i,j,k,t,temp=0; scanf("%d %d %d",&n,&max,&res); memset(visit,0,sizeof(visit)); for(i=1;i<=n;i++){ scanf("%d %d",&str[i].pow,&str[i].dmg); str[i].num=i; } qsort(&str[1],n,sizeof(str[1]),cmp); int now=max; int sum=0; for(t=0;;t++){ int tmp=-1,arr; now=Min(now-sum+res,max); if(now<=0) break; for(i=1;i<=n;i++){ if(now*100<=max*str[i].pow){ if(visit[i]==0){ if(tmp<str[i].dmg){ tmp=str[i].dmg; arr=i; } } } } if(tmp==-1 && sum<=res){ printf("NO\n"); break; } if(tmp!=-1){ ans1[++temp]=t; ans2[temp]=str[arr].num; visit[arr]=1; sum+=str[arr].dmg; } } if(now<=0){ printf("YES\n%d %d\n",t,temp); for(i=1;i<=temp;i++){ printf("%d %d\n",ans1[i],ans2[i]); } } }
posted on
2012-01-27 14:04
c语言源码
阅读(
210
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
新随笔
联系
订阅
管理
公告