3 92 83 71 95 87 74 2 20 20 20 20 2 20 19 22 18
200 0 0
贪心算法
#include <vector> #include <algorithm> #include <iterator> #include <iostream> using namespace std; int main(){ int n; while(cin >> n){ vector<int> tian(n),king(n); for(int i = 0 ; i < n ; ++ i ) cin >> tian[i]; for(int i = 0 ; i < n ; ++ i ) cin >> king[i]; sort(tian.begin(),tian.end()); sort(king.begin(),king.end()); int leftTian = 0,leftKing = 0 , rightTian = tian.size()-1, rightKing = king.size()-1, sum = 0; while(leftTian <= rightTian){ if(tian[rightTian] > king[rightKing]){ rightTian--;rightKing--; sum += 200; }else if(tian[leftTian] > king[leftKing]){ leftTian++;leftKing++; sum += 200; }else{ if(tian[leftTian] < king[rightKing]) sum-=200; leftTian++;rightKing--; } } cout<<sum<<endl; } }
原文:http://www.cnblogs.com/xiongqiangcs/p/3663117.html