借鉴别人的思路
http://blog.sina.com.cn/s/blog_76102a690100q0gr.html
#include <algorithm> #include <cstdio> using std::sort; int n,a[1010],b[1010]; int main() { while(scanf("%d",&n)==1 && n) { for(int i=0; i<n; i++) scanf("%d",&a[i]); for(int i=0; i<n; i++) scanf("%d",&b[i]); sort(a, a+n); sort(b, b+n); int sum=0; int a1=0,a2=n-1,b1=0,b2=n-1; while(a1<=a2) { if(a[a1]>b[b2]) { sum+=(a2-a1+1); break; } else if(a[a2]>b[b2]) { ++sum; --a2; --b2; } else if(a[a2]<b[b2]) { --sum; a1++; b2--; } else if(a[a2]==b[b2]) { if(a[a1]>b[b1]) { ++sum; ++a1; ++b1; } else if(a[a1]<b[b1]) { --sum; ++a1; --b2; } else if(a[a1]==b[b1]) { if(a[a1]==b[b2]) break; else { --sum; ++a1; --b2; } } } } printf("%d\n",sum*200); } return 0; }