codeforces 814B An express train to reveries
来源:互联网 发布:番茄时间管理 知乎 编辑:程序博客网 时间:2024/05/20 23:37
Sengoku still remembers the mysterious "colourful meteoroids" she discovered with Lala-chan when they were little. In particular, one of the nights impressed her deeply, giving her the illusion that all her fancies would be realized.
On that night, Sengoku constructed a permutation p1, p2, ..., pn of integers from 1 to n inclusive, with each integer representing a colour, wishing for the colours to see in the coming meteor outburst. Two incredible outbursts then arrived, each with n meteorids, colours of which being integer sequences a1, a2, ..., an and b1, b2, ..., bn respectively. Meteoroids' colours were also between 1 and ninclusive, and the two sequences were not identical, that is, at least one i (1 ≤ i ≤ n) exists, such that ai ≠ bi holds.
Well, she almost had it all — each of the sequences a and b matched exactly n - 1 elements in Sengoku's permutation. In other words, there is exactly one i (1 ≤ i ≤ n) such that ai ≠ pi, and exactly one j (1 ≤ j ≤ n) such that bj ≠ pj.
For now, Sengoku is able to recover the actual colour sequences a and b through astronomical records, but her wishes have been long forgotten. You are to reconstruct any possible permutation Sengoku could have had on that night.
The first line of input contains a positive integer n (2 ≤ n ≤ 1 000) — the length of Sengoku's permutation, being the length of both meteor outbursts at the same time.
The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ n) — the sequence of colours in the first meteor outburst.
The third line contains n space-separated integers b1, b2, ..., bn (1 ≤ bi ≤ n) — the sequence of colours in the second meteor outburst. At least one i (1 ≤ i ≤ n) exists, such that ai ≠ bi holds.
Output n space-separated integers p1, p2, ..., pn, denoting a possible permutation Sengoku could have had. If there are more than one possible answer, output any one of them.
Input guarantees that such permutation exists.
51 2 3 4 31 2 5 4 5
1 2 5 4 3
54 4 2 3 15 4 5 3 1
5 4 2 3 1
41 1 3 41 4 3 4
1 2 3 4
In the first sample, both 1, 2, 5, 4, 3 and 1, 2, 3, 4, 5 are acceptable outputs.
In the second sample, 5, 4, 2, 3, 1 is the only permutation to satisfy the constraints.
贪心~
因为一定有答案,所以只有两个位置不同和一个位置不同两种情况。
分类讨论:当有一个位置不同时,我们记录出现过那些数,剩下的一个填入这个位置中。
当有两个位置不同是,我们记录剩下的两个空位,判断取a或b在该位的数是否会导致重复。
#include<cstdio>#include<iostream>using namespace std;int n,a[1001],b[1001],c[1001],tot,now,d[1001],x[1001];bool k[1001];int main(){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) scanf("%d",&b[i]);for(int i=1;i<=n;i++) if(b[i]!=a[i]) tot++;if(tot==1){for(int i=1;i<=n;i++) if(a[i]==b[i]) c[i]=a[i],k[c[i]]=1;else now=i;for(int i=1;i<=n;i++) if(!k[i]){c[now]=i;break;}}else{for(int i=1;i<=n;i++) if(a[i]==b[i]) c[i]=a[i],k[c[i]]=1; else d[tot--]=i; if(a[d[1]]==b[d[2]] || k[a[d[1]]] || k[b[d[2]]]) c[d[1]]=b[d[1]],c[d[2]]=a[d[2]]; else c[d[1]]=a[d[1]],c[d[2]]=b[d[2]];}for(int i=1;i<=n;i++) printf("%d ",c[i]);return 0; }
- codeforces B. An express train to reveries
- 【Codeforces 814 B. An express train to reveries】+ 构造
- codeforces 814B An express train to reveries
- codeforces 814B An express train to reveries
- codeforces 814B An express train to reveries(思维)
- Codeforces 814B-An express train to reveries
- Codeforces 814 B An express train to reveries
- codeforces 814 B An express train to reveries
- CodeForces 814B An express train to reveries
- codeforces An express train to reveries 814B
- CodeForces-814B An express train to reveries 解题报告
- 814/ B. An express train to reveries
- Codeforces Round #418 B--An express train to reveries
- An express train to reveries CodeForces
- B. An express train to reveries
- An express train to reveries
- An express train to reveries
- An express train to reveries
- 使用OpenCL+OpenCV实现图像卷积(一)
- gpmc地址映射
- [LeetCode]Container With Most Water
- EMMA 覆盖率工具
- R语言:数据管理常用命令
- codeforces 814B An express train to reveries
- 记第一次codeforces比赛经历
- DispatcherServlet 源码分析(三)
- MySQL 5.7 版本的安装及简单使用(图文教程)
- 计算机原码、反码、补码详解
- 使用OpenCL+OpenCV实现图像卷积(二)
- Unity说明文档翻译-Script Execution Order Settings
- MySQL各个版本的区别
- 发送有序广播