1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; //a数组代表小X,b数组代表电脑,f数组代表标记数组,如果该数被比较过就标记为1 int n,a[10000],b[10000],f[10000],ans=0; int main() { cin>>n; //读入小X的数据 for (int i=1;i<=2*n;i++) { cin>>a[i]; } //读入电脑的数据 for (int i=1;i<=2*n;i++) { cin>>b[i]; } //小X全部排序 sort(a+1,a+2*n+1); //电脑前一半排序 sort(b+1,b+n+1); //电脑后一半排序 sort(b+n+1,b+2*n+1); //前一半,拿a数组的前一半数和b[i](前一半)比较,找到第一个比b[i]小的数,并标记该数比较过 for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { //如果a[j]没被用过,且比b[i]小,赛马成功 if ((f[j]==0)&&(a[j]<b[i])) { //标记a[j]被用过了 f[j]=1; ans+=1; break; } } } //后一半,用a数组的每个数和b[i]比较(b[i]是后一半),找到第一个比b[i]大的数 for (int i=n+1;i<=2*n;i++) { for (int j=1;j<=n*2;j++) { if ((f[j]==0)&&(a[j]>b[i])) { f[j]=1; ans+=1; break; } } } cout<<ans<<endl; return 0; }
- 1
Information
- ID
- 10303
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By