ZOJ Problem Set

来源:互联网 发布:贵州浪人网络投诉 编辑:程序博客网 时间:2024/06/10 09:44

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;    }}


原创粉丝点击