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 |
Re:megersort居然错?In Reply To:megersort居然错? Posted by:6233843 at 2006-10-22 21:45:24 > #include <iostream> > using namespace std; > > const int MAX = 500001; > long long a[MAX],b[MAX]; > long long res; > > void merge(int begin,int mid,int end) > { > int i,j,k = 0; > for(i = begin,j = mid+1; i <= mid && j <= end; k++){ > if(a[i] <= a[j]) > b[k] = a[i++]; > else { > b[k] = a[j++]; > res += mid+1-i; > } > } > for(; i <= mid; i++) > b[k++] = a[i]; > for(; j <= end; j++) > b[k++] = a[j]; > for(i = 0; i < k; i++) > a[begin+i] = b[i]; > } > > void msort(int s, int t) > { > if(s < t){ > int m = (s+t)>>1; > msort(s,m); > msort(m+1,t); > merge(s,m,t); > } > } > > int main() > { > int test; > int i; > while (scanf("%d",&test) && test) > { > res=0; > for (i=0;i<test;i++) > { > scanf("%lld",&a[i]); > } > msort(0,test-1); > printf("%lld\n",res); ~~~致命 > } > } > 想不出来个理由? Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator