Task: | Split in Three |
Sender: | oleh1421 |
Submission time: | 2021-01-30 14:56:13 +0200 |
Language: | C++ (C++11) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 22 |
#2 | ACCEPTED | 78 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2 | details |
#2 | ACCEPTED | 0.01 s | 1, 2 | details |
#3 | ACCEPTED | 0.01 s | 1, 2 | details |
#4 | ACCEPTED | 0.01 s | 1, 2 | details |
#5 | ACCEPTED | 0.01 s | 1, 2 | details |
#6 | ACCEPTED | 0.01 s | 1, 2 | details |
#7 | ACCEPTED | 0.01 s | 1, 2 | details |
#8 | ACCEPTED | 0.01 s | 1, 2 | details |
#9 | ACCEPTED | 0.01 s | 2 | details |
#10 | ACCEPTED | 0.01 s | 2 | details |
#11 | ACCEPTED | 0.01 s | 2 | details |
#12 | ACCEPTED | 0.01 s | 2 | details |
#13 | ACCEPTED | 0.01 s | 2 | details |
#14 | ACCEPTED | 0.01 s | 2 | details |
#15 | ACCEPTED | 0.01 s | 2 | details |
Code
//#pragma GCC optimize("Ofast")//#pragma GCC optimize("unroll-loops")//#pragma GCC target("avx")#include <bits/stdc++.h>typedef long long ll;#define endl '\n'using namespace std;const int N=101019;int ans[N];int sum[4];int c[N];bool SOLVED=false;void F(int pos,int n){if (SOLVED) return;if (pos==n+1){if (sum[1]+1==sum[2] && sum[2]+1==sum[3]){for (int i=1;i<=n;i++) ans[i]=c[i];SOLVED=true;}return;}for (int i=1;i<=3;i++){c[pos]=i;sum[i]+=pos;F(pos+1,n);sum[i]-=pos;c[pos]=0;}}void solve(){int n;cin>>n;int nn=n;int sum=n*(n+1)/2;if (sum%3){cout<<"IMPOSSIBLE\n";return;}while (n>=9){ans[n]=1;ans[n-1]=2;ans[n-2]=3;ans[n-3]=3;ans[n-4]=2;ans[n-5]=1;n-=6;}F(1,n);if (!SOLVED) exit(1);for (int i=1;i<=nn;i++) cout<<ans[i]<<" ";cout<<endl;}int main(){ios_base::sync_with_stdio(false);cin.tie(0);int tt=1;while (tt--){solve();}return 0;}//1 2 3 3 2 1//1 (1) 3 (1) 5 6//6 7 8//1 2 3 4 5 6
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
3 |
correct output |
---|
1 2 3 |
user output |
---|
1 2 3 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
input |
---|
4 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 3
Group: 1, 2
Verdict: ACCEPTED
input |
---|
5 |
correct output |
---|
1 3 1 3 2 |
user output |
---|
1 3 1 3 2 |
Test 4
Group: 1, 2
Verdict: ACCEPTED
input |
---|
6 |
correct output |
---|
1 3 2 2 1 3 |
user output |
---|
1 3 2 2 1 3 |
Test 5
Group: 1, 2
Verdict: ACCEPTED
input |
---|
7 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 6
Group: 1, 2
Verdict: ACCEPTED
input |
---|
8 |
correct output |
---|
2 3 1 2 3 3 2 1 |
user output |
---|
1 1 1 2 1 3 3 2 |
Test 7
Group: 1, 2
Verdict: ACCEPTED
input |
---|
9 |
correct output |
---|
1 2 3 1 2 3 3 2 1 |
user output |
---|
1 2 3 1 2 3 3 2 1 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
input |
---|
10 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
42 |
correct output |
---|
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... |
user output |
---|
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
95 |
correct output |
---|
1 3 1 3 2 1 2 3 3 2 1 1 2 3 3 ... |
user output |
---|
1 3 1 3 2 1 2 3 3 2 1 1 2 3 3 ... Truncated |
Test 11
Group: 2
Verdict: ACCEPTED
input |
---|
96 |
correct output |
---|
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... |
user output |
---|
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... Truncated |
Test 12
Group: 2
Verdict: ACCEPTED
input |
---|
97 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 13
Group: 2
Verdict: ACCEPTED
input |
---|
98 |
correct output |
---|
2 3 1 2 3 3 2 1 1 2 3 3 2 1 1 ... |
user output |
---|
1 1 1 2 1 3 3 2 1 2 3 3 2 1 1 ... Truncated |
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
99 |
correct output |
---|
1 2 3 1 2 3 3 2 1 1 2 3 3 2 1 ... |
user output |
---|
1 2 3 1 2 3 3 2 1 1 2 3 3 2 1 ... Truncated |
Test 15
Group: 2
Verdict: ACCEPTED
input |
---|
100 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |