最近在学C++,为了免于无聊,就去网上找了OJ,发现HDOJ蛮适合我的。
而且有个ACM STEP,难度适中的题,正好练习练习C++的各种技巧。
忙活了一天把Section 1,Section 2 给做完了,接下来进入Section 3,初步扫描一下好像是些排序题。正好C++的算法里有个排序,就用上了。
同时也用了vector来存储数据。(后来出现了问题。。)
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int n,suma,sumb,a1,b1;
vector<int> a,b;
while(cin>>n){
if(n==0)break;
suma=0;sumb=0;
a.clear();b.clear();//一开始的时候把这句话忘记了... 结果出错了,显然的.. 吸取教训 - !-
for(int i(0);i<n;i++) {cin>>a1;a.push_back(a1);}
for(int j(0);j<n;j++) {cin>>b1;b.push_back(b1);}
sort(a.begin(),a.end());sort(b.begin(),b.end());
for(int k(0);k<n;k++){
if(a[k]>b[k]) suma+=2;
else if(b[k]>a[k]) sumb+=2;
else {suma+=1;sumb+=1;}
}
cout<<suma<<" vs "<<sumb<<endl;
}
return 0;
}
总结:除了忘记把vector清空以外,其他都没问题。
同时复习了vector.以及sort排序.就题目本身来说,还是比较水的,不需要什么算法。