| ||||||||||
| 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了好多次,不知道问题出在哪里?#include<iostream>
#define N 5000
using namespace std;
int a[N],b[N];
void MergeSort(int left,int right,__int64 &count)
{
if(left<right)
{
int mid=(left+right)/2;
MergeSort(left,mid,count);
MergeSort(mid+1,right,count);
int i=left,j=mid+1,k=left;
while(i<=mid&&j<=right)
if(a[i]<a[j]) b[k++]=a[i++];
else
{
count=count+mid-i+1;
b[k++]=a[j++];
}
while(i<=mid)
b[k++]=a[i++];
while(j<=right)
b[k++]=a[j++];
for(i=left;i<=right;i++)
a[i]=b[i];
}
}
int main()
{
int i,n;
__int64 count;
cin>>n;
while(n)
{
for(i=0;i<n;i++)
cin>>a[i];
count=0;
MergeSort(0,n-1,count);
printf("%I64d\n",count);
cin>>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