【正文】
while (i=mid) d[k++]=a[i++]。 while (j=r) d[k++]=a[j++]。 for (int q=l。q=r。q++) a[q]=d[q]。 } void merge(int *a,int l,int r) { if (lr) { int mid=(l+r)/2。 merge(a,l,mid)。 merge(a,mid+1,r)。 stablesort(a,l,mid,r)。 } } int n,c[1000001]。 struct data{ int xx,yy。}a[1000001],b[1000001]。 inline int cmp(const void *a,const void *b) { if ( (*(data *)a) .xx (*(data *)b) . xx ) return 1。 else return 1。 } int main() { scanf(%d,amp。n)。 for (int q=0。qn。q++) {scanf(%d,amp。a[q].xx)。a[q].yy=q。} for (int q=0。qn。q++) {scanf(%d,amp。b[q].xx)。b[q].yy=q。} qsort(a,n,sizeof(data),cmp)。 qsort(b,n,sizeof(data),cmp)。 for (int q=0。qn。q++) c[b[q].yy]=a[q].yy。 merge(c,0,n1)。 printf(%d,ans)。 return 0。 } 積木大賽 include cstdio include cstring include algorithm using namespace std。 int n , first , next , ans。 int i。 int main() { while( scanf( %d , amp。n ) != EOF )(不用理會這個) { scanf( %d , amp。first )。 ans = first。 for( i = 2 。 i = n 。 i++ ) { scanf(%d,amp。next)。 if( first = next ){ ans += next first。 first = next。 } else first = next。 } printf( %d\n , ans )。 } return 0。 }