| ||||||||||
| 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 | |||||||||
为什么总是WA?附代码我坚信是对的的代码
#include <cstdio>
using namespace std;
int value[500],N,res,rescount,stamps[4000],beststamps[4000],bestused;
int ssort(){int t;//莫非是排序惹的祸?
for (int i=0;i<N;i++)for (int j=i;j<N;j++){
if (value[i]>value[j]){
t=value[i];value[i]=value[j];value[j]=t;
}
}
return 0;
}
void dfs(int id,int used,int v,int last){int i,j,k;
if (v<0 || used>4)return;
if (v==0){
if (res==id && bestused==used)
{
for (i=0;i<bestused && stamps[i]==beststamps[i];i++);
if (i!=bestused)rescount++;
}
if (res<id || (bestused>used && res==id)){
res=id;bestused=used;rescount=1;
for (i=0;i<used;i++)beststamps[i]=stamps[i];
}
return;
}
for (i=last+1;i<N;i++){
for (j=1;j<=4;j++)
if (v>=value[i]*j && used+j<=4){
for (k=0;k<j;k++)stamps[used+k]=i;
dfs(id+1,used+j,v-value[i]*j,i);
}
}
}
int main(){
int i,j;
while (scanf("%d",&i)!=-1){
value[0]=i;N=1;
for (scanf("%d",&i);i;scanf("%d",&i))
value[N++]=i;
ssort();
for (scanf("%d",&i);i;scanf("%d",&i)){
res=-1;rescount=0;bestused=0;
dfs(0,0,i,-1);
if (rescount==0)printf("%d ---- none\n",i);
else{
if (rescount>1)printf("%d (%d): tie\n",i,res);
else{
printf("%d (%d):",i,res);
for (j=0;j<bestused;j++)printf(" %d",value[beststamps[j]]);
printf("\n");
}
}
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator