Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
疯了,哪错了?#include<stdio.h> #include<string.h> struct node { long p; long v; }; struct node sto[11]; long tmp1,tmp2,tmv1,tmv2,res,n,d,fg[11],cor,sum; void cal( long a , long f) { long i; if(a==1) { if(f==1) { if(tmv2>res) { res=tmv2; } } else { for(i=0;i<n;i++) { if(fg[i]==0) { tmv2+=sto[i].v; if(tmv2>res) { res=tmv2; } } } } tmp1=0; tmp2=0; tmv1=0; tmv2=0; } else { cor=0; for(i=0;i<n;i++) { if(fg[i]==0) { cor+=sto[i].v; } } for(i=0;i<n;i++) { if(fg[i]==0&&cor+tmv2>=res) { fg[i]=1; if(f==1) { tmp1+=sto[i].p; tmv1+=sto[i].v; if(tmp1-tmp2>d) {cal(a-1,2);} else {cal(a-1,1);} } else { tmp2+=sto[i].p; tmv2+=sto[i].v; if(tmp2-tmp1>d) {cal(a-1,1);} else {cal(a-1,2);} } fg[i]=0; } } } } int main(void) { long i; while(scanf("%ld%ld",&n,&d)==2) { sum=0; for(i=0;i<n;i++) { scanf("%ld%ld",&sto[i].p,&sto[i].v); sum+=sto[i].v; } memset(fg,0,sizeof(fg)); tmp1=0; tmp2=0; tmv1=0; tmv2=0; res=0; cal(n,1); printf("%ld\n",res); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator