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 |
求救,我用贪心,为什么老是WA,请指点,thx#include<stdio.h> #define MAX 1001 void Merge(long a[],long p,long q,long r) { long i,j,t; long lt[MAX]; t=p;i=p;j=q+1; while(t<=r) { if(i<=q&&(j>r||a[i]>=a[j])) { lt[t]=a[i]; i++; } else { lt[t]=a[j]; j++; } t++; } for(i=p;i<=r;i++) a[i]=lt[i]; } void merge_sort(long a[],long p,long r) { long q; if(p!=r) { q=(p+r-1)/2; merge_sort(a,p,q); merge_sort(a,q+1,r); Merge(a,p,q,r); } } int main() { long a[1001],b[1001];long n,i,sum1,sum2,k; while(scanf("%d",&n)!=EOF) { if(!n) break; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) scanf("%d",&b[i]); merge_sort(a,0,n-1); //先排序 merge_sort(b,0,n-1); sum1=0;sum2=0; k=0; for(i=0;i<n;i++) { while(k<n&&a[i]<=b[k]&&a[i]!=-1&&b[k]!=-1) k++; if(k<n&&a[i]>b[k]&&a[i]!=-1&&b[k]!=-1) { a[i]=-1; b[k]=-1; k++; sum1++; //把已赢了的标记-1去掉 } } k=0; for(i=0;i<n;i++) { while(k<n&&a[i]!=b[k]&&a[i]!=-1&&b[k]!=-1) k++; if(k<n&&a[i]==b[k]&&a[i]!=-1&&b[k]!=-1) { a[i]=-1; b[k]=-1; k++; sum2++; } } printf("%ld\n",200*(sum1)-200*(n-sum1-sum2)); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator