CSES - Datatähti 2021 loppu - Results
Submission details
Task:Kolmijako
Sender:Epe
Submission time:2021-01-23 19:59:06 +0200
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#2ACCEPTED0.01 s1, 2details
#30.01 s1, 2details
#40.01 s1, 2details
#5ACCEPTED0.01 s1, 2details
#60.01 s1, 2details
#70.01 s1, 2details
#8ACCEPTED0.01 s1, 2details
#90.01 s2details
#100.01 s2details
#110.01 s2details
#12ACCEPTED0.01 s2details
#130.01 s2details
#140.01 s2details
#15ACCEPTED0.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};
    //cout << tsum << endl;
    vector<int> asd;
    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 {
                asd.push_back(bins+1);
                a[bins]-=i;
                bins++;
            }
        } else {
            a[bi] -= i;
            asd.push_back(bi+1);
        }
    }
    if(a[0] == a[1] && a[0] == a[2] && a[0] == 0){
        for(int i : asd){
            cout << i << " ";
        }
        cout << 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: ACCEPTED

input
4

correct output
IMPOSSIBLE

user output
IMPOSSIBLE

Test 3

Group: 1, 2

Verdict:

input
5

correct output
1 3 1 3 2 

user output
2 1 3 3 3 

Test 4

Group: 1, 2

Verdict:

input
6

correct output
1 3 2 2 1 3 

user output
1 2 3 3 2 3 

Test 5

Group: 1, 2

Verdict: ACCEPTED

input
7

correct output
IMPOSSIBLE

user output
IMPOSSIBLE

Test 6

Group: 1, 2

Verdict:

input
8

correct output
2 3 1 2 3 3 2 1 

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

Test 8

Group: 1, 2

Verdict: ACCEPTED

input
10

correct output
IMPOSSIBLE

user output
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
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
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
IMPOSSIBLE

Test 12

Group: 2

Verdict: ACCEPTED

input
97

correct output
IMPOSSIBLE

user output
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
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
IMPOSSIBLE

Test 15

Group: 2

Verdict: ACCEPTED

input
100

correct output
IMPOSSIBLE

user output
IMPOSSIBLE