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 |
真不知道自己怎么RTE的,哪位牛人帮忙啊,帮忙出出招#include <stdio.h> #include <string.h> int high[2][501]; int step[1001]; char ways[2][501][1001]; int main() { int n,m,i,j,k,p1,p2; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&m); for(j=0;j<m;j++) { scanf("%d",&step[j]); } for(j=0;j<2;j++) for(k=0;k<=500;k++) { high[j][k]=-1; ways[j][k][0]='\0'; } high[0][0]=0; for(j=0;j<m;j++) { if(j%2==0) { p1=0; p2=1; } else { p1=1; p2=0; } for(k=0;k<=500;k++) { int h1,len; if(high[p1][k]==-1)continue; if(step[j]+k>=0&&step[j]+k<=500) { if(k+step[j]>high[p1][k])h1=k+step[j]; else h1=high[p1][k]; if(high[p2][k+step[j]]==-1||h1<high[p2][k+step[j]]) { high[p2][k+step[j]]=h1; strcpy(ways[p2][k+step[j]],ways[p1][k]); len=strlen(ways[p2][k+step[j]]); ways[p2][k+step[j]][len]='U'; ways[p2][k+step[j]][len+1]='\0'; } } if(k-step[j]>=0&&k-step[j]<=500) { if(k-step[j]>high[p1][k])h1=k-step[j]; else h1=high[p1][k]; if(high[p2][k-step[j]]==-1||h1<high[p2][k-step[j]]) { high[p2][k-step[j]]=h1; strcpy(ways[p2][k-step[j]],ways[p1][k]); len=strlen(ways[p2][k-step[j]]); ways[p2][k-step[j]][len]='D'; ways[p2][k-step[k]][len+1]='\0'; } } } for(k=0;k<=500;k++) { high[p1][k]=-1; } } if(high[p2][0]==-1)printf("IMPOSSIBLE\n"); else printf("%s\n",ways[p2][0]); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator