Skip to content

Commit 6806d3e

Browse files
authored
Merge pull request ashutosh97#188 from anubhav-08/master
added a question 1408A of codeforces
2 parents 583006b + 2632c38 commit 6806d3e

File tree

2 files changed

+134
-0
lines changed

2 files changed

+134
-0
lines changed

Circle Coloring/1408A.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
int main()
6+
{
7+
while()
8+
{
9+
int n;
10+
cin>>n;
11+
std::vector<int> a(n), b(n), c(n), ans;
12+
13+
for(int i=0; i<n; i++)
14+
{
15+
cin>>a[i];
16+
}
17+
for(int i=0; i<n; i++)
18+
{
19+
cin>>b[i];
20+
}
21+
for(int i=0; i<n; i++)
22+
{
23+
cin>>c[i];
24+
}
25+
ans.push_back(a[0]);
26+
27+
for(int i=1; i<n; i++)
28+
{
29+
if(i == (n-1))
30+
{
31+
if(ans[ans.size()-1] != a[i] && a[i] != ans[0])
32+
ans.push_back(a[i]);
33+
else if(ans[ans.size()-1] != b[i] && b[i] != ans[0])
34+
ans.push_back(b[i]);
35+
else if(ans[ans.size()-1] != c[i] && c[i] != ans[0])
36+
ans.push_back(c[i]);
37+
}
38+
else if(ans[ans.size()-1] != a[i])
39+
ans.push_back(a[i]);
40+
41+
else if(ans[ans.size()-1] != b[i])
42+
ans.push_back(b[i]);
43+
44+
else if(ans[ans.size()-1] != c[i])
45+
ans.push_back(c[i]);
46+
}
47+
for(auto i : ans)
48+
cout<<i<<" ";
49+
cout<<endl;
50+
}
51+
return 0;
52+
}

Circle Coloring/question 1408A.txt

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
CIRCLE COLORING
2+
time limit per test1 second
3+
memory limit per test256 megabytes
4+
inputstandard input
5+
outputstandard output
6+
7+
You are given three sequences: a1,a2,…,an; b1,b2,…,bn; c1,c2,…,cn.
8+
9+
For each i, ai≠bi, ai≠ci, bi≠ci.
10+
11+
Find a sequence p1,p2,…,pn, that satisfy the following conditions:
12+
13+
pi∈{ai,bi,ci}
14+
pi≠p(imodn)+1.
15+
In other words, for each element, you need to choose one of the three possible values, such that no two adjacent elements (where we consider elements i,i+1 adjacent for i<n and also elements 1 and n) will have equal value.
16+
17+
It can be proved that in the given constraints solution always exists. You don't need to minimize/maximize anything, you need to find any proper sequence.
18+
19+
Input
20+
The first line of input contains one integer t (1≤t≤100): the number of test cases.
21+
22+
The first line of each test case contains one integer n (3≤n≤100): the number of elements in the given sequences.
23+
24+
The second line contains n integers a1,a2,…,an (1≤ai≤100).
25+
26+
The third line contains n integers b1,b2,…,bn (1≤bi≤100).
27+
28+
The fourth line contains n integers c1,c2,…,cn (1≤ci≤100).
29+
30+
It is guaranteed that ai≠bi, ai≠ci, bi≠ci for all i.
31+
32+
Output
33+
For each test case, print n integers: p1,p2,…,pn (pi∈{ai,bi,ci}, pi≠pimodn+1).
34+
35+
If there are several solutions, you can print any.
36+
37+
Example
38+
inputCopy
39+
5
40+
3
41+
1 1 1
42+
2 2 2
43+
3 3 3
44+
4
45+
1 2 1 2
46+
2 1 2 1
47+
3 4 3 4
48+
7
49+
1 3 3 1 1 1 1
50+
2 4 4 3 2 2 4
51+
4 2 2 2 4 4 2
52+
3
53+
1 2 1
54+
2 3 3
55+
3 1 2
56+
10
57+
1 1 1 2 2 2 3 3 3 1
58+
2 2 2 3 3 3 1 1 1 2
59+
3 3 3 1 1 1 2 2 2 3
60+
outputCopy
61+
1 2 3
62+
1 2 1 2
63+
1 3 4 3 2 4 2
64+
1 3 2
65+
1 2 3 1 2 3 1 2 3 2
66+
Note
67+
In the first test case p=[1,2,3].
68+
69+
It is a correct answer, because:
70+
71+
p1=1=a1, p2=2=b2, p3=3=c3
72+
p1≠p2, p2≠p3, p3≠p1
73+
All possible correct answers to this test case are: [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1].
74+
75+
In the second test case p=[1,2,1,2].
76+
77+
In this sequence p1=a1, p2=a2, p3=a3, p4=a4. Also we can see, that no two adjacent elements of the sequence are equal.
78+
79+
In the third test case p=[1,3,4,3,2,4,2].
80+
81+
In this sequence p1=a1, p2=a2, p3=b3, p4=b4, p5=b5, p6=c6, p7=c7. Also we can see, that no two adjacent elements of the sequence are equal.
82+

0 commit comments

Comments
 (0)