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 |
为什么是runtime error?实际运行的时候正常.自己随便测试了几个,没有发现问题啊. why? 下面是source code. thx. #include <stdio.h> #include <stdlib.h> long res=0; void Merge(long*SR,long* TR,int i ,int m ,int n) { int j,k; for(j=m+1,k=i;i<=m&& j<=n;++k) { if(SR[i]<SR[j]) { res+=abs(i-k); TR[k]=SR[i++]; } else { res+=abs(j-k); TR[k]=SR[j++]; } } if(i<=m) { for(int x=i;x<=m;x++) { res+=abs(x-k); TR[k++]=SR[x]; } } if(j<=n) { for(int x=j;x<=n;x++) { res+=abs(x-k); TR[k++]=SR[x]; } } } void Msort(long* SR,long* TR,int s,int t) { int m; long dig3[500000]; if(s==t) TR[s]=SR[s]; else { m=(s+t)/2; Msort(SR,dig3,s,m); Msort(SR,dig3,m+1,t); Merge(dig3,TR,s,m,t); } } int main() { int count; long dig[500000]; long dig2[500000]; while(scanf("%d",&count)==1) { res=0; if(count==0) { exit(0); } for(int i=0;i<count;i++) { scanf("%lld",&dig[i]); } Msort(dig,dig2,0,count-1); printf("%lld\n",res/2); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator