AOJ 1153 - Equal Total Score
7分かかりました.
#include<iostream> #include<vector> #include<algorithm> int main(){ int n, m; while(std::cin >> n >> m, n){ int s1 = 0, s2 = 0; std::vector<int> v1, v2; for(int i=0;i<n;i++){ int j; std::cin >> j; v1.push_back(j); s1 += j; } for(int i=0;i<m;i++){ int j; std::cin >> j; v2.push_back(j); s2 += j; } std::sort(v1.begin(), v1.end()); std::sort(v2.begin(), v2.end()); const int INF = 1 << 24; int a = INF, b = INF; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(s1 - v1[i] + v2[j] == s2 - v2[j] + v1[i] && v1[i] + v2[j] < a + b){ a = v1[i]; b = v2[j]; } } } if(a == INF){ std::cout << "-1" << std::endl; }else{ std::cout << a << " " << b << std::endl; } } }