CSES - Datatähti Open 2021 - Results
Submission details
Task:Split in Three
Sender:TryMax
Submission time:2021-01-30 15:30:06 +0200
Language:C++11
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED22
#2ACCEPTED78
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#2ACCEPTED0.01 s1, 2details
#3ACCEPTED0.01 s1, 2details
#4ACCEPTED0.01 s1, 2details
#5ACCEPTED0.01 s1, 2details
#6ACCEPTED0.01 s1, 2details
#7ACCEPTED0.01 s1, 2details
#8ACCEPTED0.01 s1, 2details
#9ACCEPTED0.01 s2details
#10ACCEPTED0.01 s2details
#11ACCEPTED0.01 s2details
#12ACCEPTED0.01 s2details
#13ACCEPTED0.01 s2details
#14ACCEPTED0.01 s2details
#15ACCEPTED0.01 s2details

Code

#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

//#pragma GCC optimize ("O3")
//#pragma GCC optimize ("Ofast")
//#pragma GCC optimize ("unroll-loops")
//#pragma GCC optimize ("trapv")
//#pragma GCC optimize ("sse, ssse, sse2, avx")

#define f first
#define s second
#define pb push_back
#define ld long double
#define int long long

using namespace std;

const int N = 2e5 + 10, mod = 1e9 + 7, inf = 1e18 + 10;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n; cin >> n;
    if(n % 3 == 0){
        if((n / 3) % 2){
            for(int i = 1; i <= n; ++i)
                if((i - 1) % 6 + 1 <= 3)
                    cout << (i - 1) % 3 + 1 << " ";
                else
                    cout << 4 - ((i - 1) % 3 + 1) << " ";
        }else{
            for(int i = 1; i <= n - 6; ++i)
                if((i - 1) % 6 + 1 <= 3)
                    cout << (i - 1) % 3 + 1 << " ";
                else
                    cout << 4 - ((i - 1) % 3 + 1) << " ";
            cout << "1 3 2 2 1 3";
        }
    }else if(n % 3 == 2){
        if(((n + 1) / 3) % 2){
            for(int i = 1; i <= n + 1; ++i){
                if(i == 1)
                    continue;
                if((i - 1) % 6 + 1 <= 3)
                    cout << (i - 1) % 3 + 1 << " ";
                else
                    cout << 4 - ((i - 1) % 3 + 1) << " ";
            }
        }else{
            for(int i = 1; i <= n + 1 - 6; ++i){
                if(i == 1)
                    continue;
                if((i - 1) % 6 + 1 <= 3)
                    cout << (i - 1) % 3 + 1 << " ";
                else
                    cout << 4 - ((i - 1) % 3 + 1) << " ";
            }
            if(n == 5)
                cout << "3 3 3 1 2";
            else
                cout << "1 3 2 2 1 3";
        }
    }else{
        cout << "IMPOSSIBLE";
    }
}

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
3 3 3 1 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
2 3 3 2 1 1 2 3 

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 3 2 1 1 2 3 

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 2 3 3 2 1 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
2 3 3 2 1 1 2 3 3 2 1 1 2 3 3 ...

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 2 3 3 2 1 1 2 3 3 2 1 1 2 3 ...

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
2 3 3 2 1 1 2 3 3 2 1 1 2 3 3 ...

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 3 2 1 1 2 3 3 2 1 1 2 3 ...

Test 15

Group: 2

Verdict: ACCEPTED

input
100

correct output
IMPOSSIBLE

user output
IMPOSSIBLE