CSES - Datatähti 2021 loppu - Results
Submission details
Task:Kolmijako
Sender:Epe
Submission time:2021-01-23 19:52:12 +0200
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#20.01 s1, 2details
#30.01 s1, 2details
#40.01 s1, 2details
#50.01 s1, 2details
#60.01 s1, 2details
#70.01 s1, 2details
#80.01 s1, 2details
#90.01 s2details
#100.01 s2details
#110.01 s2details
#120.01 s2details
#130.01 s2details
#140.01 s2details
#150.01 s2details

Compiler report

input/code.cpp: In function 'bool ps(int)':
input/code.cpp:9:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^

Code

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int arr[100];
int g[100];
int n;
bool ps(int x){

}
int main(){
    cin >> n;
    if(n == 3){
        cout << "1 2 3\n";
        exit(0);
    }

    int tsum = (((n*(n+1))/2))/3;
  /*  if(tsum%3 != 0){
        cout << "IMPOSSIBLE\n";
        exit(0);
    }
*/
  cout << tsum << endl;


    int bins = 1;
    stringstream ss;
    int a[3]{tsum-1,tsum,tsum+1};
    for(int i = n; i >= 1; i--){
        int j;

        int m = 100, bi = 0;

        for(j = 0; j < bins; j++){
            if(a[j] >= i && a[j] - i < m){
                m = a[j] - i;
                bi = j;
            }
        }

        if(m == 100){
            if(bins == 3){
                cout << "IMPOSSIBLE\n" << endl;
                exit(0);
                break;
            } else {
                ss << j << " ";
                a[j]-=i;
                bins++;
            }
        } else {
            a[bi] -= i;
            ss << (bi+1) << " ";
        }
    }
    if(a[0] == a[1] && a[0] == a[2] && a[0] == 0){
        cout << ss.rdbuf() << endl;
    } else {
        cout << "IMPOSSIBLE\n";
    }

}

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:

input
4

correct output
IMPOSSIBLE

user output
3
IMPOSSIBLE

Test 3

Group: 1, 2

Verdict:

input
5

correct output
1 3 1 3 2 

user output
5
1 1 2 3 3 

Test 4

Group: 1, 2

Verdict:

input
6

correct output
1 3 2 2 1 3 

user output
7
1 1 2 3 2 3 

Test 5

Group: 1, 2

Verdict:

input
7

correct output
IMPOSSIBLE

user output
9
IMPOSSIBLE

Test 6

Group: 1, 2

Verdict:

input
8

correct output
2 3 1 2 3 3 2 1 

user output
12
1 1 2 2 3 1 3 3 

Test 7

Group: 1, 2

Verdict:

input
9

correct output
1 2 3 1 2 3 3 2 1 

user output
15
1 1 2 2 1 3 3 3 3 

Test 8

Group: 1, 2

Verdict:

input
10

correct output
IMPOSSIBLE

user output
18
IMPOSSIBLE

Test 9

Group: 2

Verdict:

input
42

correct output
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ...

user output
301
IMPOSSIBLE

Test 10

Group: 2

Verdict:

input
95

correct output
1 3 1 3 2 1 2 3 3 2 1 1 2 3 3 ...

user output
1520
IMPOSSIBLE

Test 11

Group: 2

Verdict:

input
96

correct output
1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ...

user output
1552
IMPOSSIBLE

Test 12

Group: 2

Verdict:

input
97

correct output
IMPOSSIBLE

user output
1584
IMPOSSIBLE

Test 13

Group: 2

Verdict:

input
98

correct output
2 3 1 2 3 3 2 1 1 2 3 3 2 1 1 ...

user output
1617
IMPOSSIBLE

Test 14

Group: 2

Verdict:

input
99

correct output
1 2 3 1 2 3 3 2 1 1 2 3 3 2 1 ...

user output
1650
IMPOSSIBLE

Test 15

Group: 2

Verdict:

input
100

correct output
IMPOSSIBLE

user output
1683
IMPOSSIBLE