CodeForces 779 A.Pupils Redistribution(水~)
来源:互联网 发布:动画知已图片 编辑:程序博客网 时间:2024/06/18 10:34
Description
给出两个只由1~5组成的均有n个元素的集合a和b,每次可以交换a中一个元素与b中一个元素,问是否可以让两个集合完全相同,如果可以那至少要交换几次
Input
第一行一整数n表示集合中元素个数,之后n个整数a[i]表示a集合中元素,最后n个整数b[i]表示b集合中元素(1<=n<=100,1<=a[i],b[i]<=5)
Output
如果可以通过适当交换使得两集合相同则输出最少交换次数,否则输出-1
Sample Input
4
5 4 4 4
5 5 4 5
Sample Output
1
Solution
简单题,统计a中每个数的个数num1[i]以及a和b中每个数的个数num[i],如果某个数的个数为奇数显然没法均分给两个集合,输出-1,否则一定可以,a若要达到i的个数是num[i]/2,那么需要给b或者从b拿abs(num[i]/2-num1[i])个元素,统计该值除以二即为交换次数
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 111int n,a[maxn],b[maxn],num1[6],num[6];int main(){ while(~scanf("%d",&n)) { memset(num1,0,sizeof(num1)); memset(num,0,sizeof(num)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); num1[a[i]]++,num[a[i]]++; } for(int i=1;i<=n;i++) { scanf("%d",&b[i]); num[b[i]]++; } int flag=1; for(int i=1;i<=5;i++) if(num[i]&1)flag=0; if(flag) { int ans=0; for(int i=1;i<=6;i++)ans+=abs(num[i]/2-num1[i]); printf("%d\n",ans/2); } else printf("-1\n"); } return 0;}
阅读全文
0 0
- CodeForces 779 A.Pupils Redistribution(水~)
- 【CodeForces 779A】Pupils Redistribution(模拟)
- 【CodeForces 779A】Pupils Redistribution(模拟)
- 【CodeForces 779A】Pupils Redistribution(模拟)
- 【codeforces 779A】Pupils Redistribution
- Codeforces 779A-Pupils Redistribution
- CodeForces 779A Pupils Redistribution
- Pupils Redistribution (Codeforces-779A)
- 【Codeforces-402A】-Pupils Redistribution(思维)
- CF 779A A. Pupils Redistribution (水)
- Codeforces 778A. Pupils Redistribution
- cf 779A Pupils Redistribution
- Codeforces #402 (Div. 2) A. Pupils Redistribution
- (贪心)Codeforces Round #402 A. Pupils Redistribution
- CF 779A Pupils Redistribution 模拟,水题
- A. Pupils Redistribution
- Codeforces Round #402 (Div. 2) A. Pupils Redistribution(交换次数)
- A. Pupils Redistribution -Codeforces Round #402 (Div. 2)
- 计算1024的阶乘结果有多少个0
- POJ 1321:棋盘问题
- Jquery 获取radio选用值
- 我的python手册
- js倒计时
- CodeForces 779 A.Pupils Redistribution(水~)
- 【C++】【LeetCode】70. Climbing Stairs
- centos6.5 桥接模式下的静态ip配置
- linux下so库的加载和使用(dlopen/dlsym/dlclose)
- maven创建多模块项目——命令行方式
- Android音频系统之AudioFlinger(一)
- es6中Class的静态方法详解
- Centos系统下安装配置SVN
- Bootstrap标签页和工具提示插件