您的位置:首页 > 其它

ZOJ Problem Set - 3023 (水题)

2017-07-08 21:01 274 查看
ZOJ Problem Set - 3023

 题意:两人各有n,m张牌,交换一张,使得两人手牌加和相等。有多种方法的时候,选交换牌加和小的一组。

解决:挨个寻找就行了。

细节:无。

收获:读对题很要。一开始以为是平均数相等。 
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n, m;
int a[110], b[110];
int main(){
while(cin >> n >> m && n && m){
int suma = 0, sumb = 0;
int flag = 0;
int minn = 300, mina = 0, minb = 0;
for(int i = 0; i < n; i++){
cin >> a[i];
suma += a[i];
}

for(int j = 0; j < m; j++){
cin >> b[j];
sumb += b[j];
}

for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if( (suma-a[i]+b[j]) == (sumb+a[i]-b[j]) ) {
flag = 1;
if(a[i]+b[j] < minn){
mina = a[i]; minb = b[j];
minn = a[i]+b[j];
}
}
}
}
if(!flag) cout << -1 << endl;
else cout << mina << " " << minb << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: