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 |
SIMPLE 都过了,为啥WA啊,请大牛帮忙看一下#include<iostream> using namespace std; long long a[500000],c[500000]; long long MergeSort(long long a[],long long c[],int left,int right) { int i,j,mid,temp,count; long long total=0; if(left>right) return 0; mid=(left+right)/2; count=0; i=left; j=mid+1; while(i<=mid && j<=right) { if (a[i]>a[j]) { total+=mid-i+1;//从右表移出一个元素,同时 total 累加左表此时的元素个数 c[count++]=a[j++]; } else { c[count++]=a[i++]; } } return total; } int main() { int n,i,j; long long total; while (1) { scanf("%d",&n); if(n==0) break; for (i=0;i<n;i++) { scanf("%lld",&a[i]); } total=MergeSort(a,c,0,n-1); printf("%lld\n",total); } system("pause"); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator