| Task: | Split in Three |
| Sender: | _martynas |
| Submission time: | 2021-01-30 19:02:26 +0200 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2 | details |
| #2 | ACCEPTED | 0.01 s | 1, 2 | details |
| #3 | WRONG ANSWER | 0.01 s | 1, 2 | details |
| #4 | WRONG ANSWER | 0.01 s | 1, 2 | details |
| #5 | ACCEPTED | 0.01 s | 1, 2 | details |
| #6 | WRONG ANSWER | 0.01 s | 1, 2 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2 | details |
| #8 | ACCEPTED | 0.01 s | 1, 2 | details |
| #9 | WRONG ANSWER | 0.01 s | 2 | details |
| #10 | WRONG ANSWER | 0.01 s | 2 | details |
| #11 | WRONG ANSWER | 0.01 s | 2 | details |
| #12 | ACCEPTED | 0.01 s | 2 | details |
| #13 | WRONG ANSWER | 0.01 s | 2 | details |
| #14 | WRONG ANSWER | 0.01 s | 2 | details |
| #15 | ACCEPTED | 0.01 s | 2 | details |
Compiler report
input/code.cpp: In function 'void solve()':
input/code.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
~~~~~^~~~~~~~~~Code
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100;
int t;
int n;
bool Used[3][MAX_N];
int Sum[3] = {0};
int NeededSum[3];
bool recursionDone;
void recur(int group, int pos)
{
if(Sum[group] > NeededSum[group])
{
return;
}
if(Sum[group] == NeededSum[group])
{
recursionDone = true;
return;
}
if(pos == n)
{
return;
}
if(!Used[(group + 1) % 3][pos] && !Used[(group + 2) % 3][pos])
{
Used[group][pos] = true;
Sum[group] += pos + 1;
recur(group, pos + 1);
if(recursionDone)
{
return;
}
Sum[group] -= pos + 1;
Used[group][pos] = false;
}
recur(group, pos + 1);
}
void solve()
{
scanf("%d", &n);
if((n + 2) % 3 == 0)
{
puts("IMPOSSIBLE");
}
else
{
NeededSum[0] = (n*n + n - 6) / 6;
NeededSum[1] = NeededSum[0] + 1;
NeededSum[2] = NeededSum[0] + 2;
recur(0, 0);
recur(1, 0);
for(int i = 0; i < n; i++)
{
if(Used[0][i])
{
printf("%d ", 1);
}
else if(Used[1][i])
{
printf("%d ", 2);
}
else
{
printf("%d ", 3);
}
}
}
}
int main()
{
t = 1;
//scanf("%d", &t);
while(t--)
{
solve();
}
return 0;
}
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: WRONG ANSWER
| input |
|---|
| 5 |
| correct output |
|---|
| 1 3 1 3 2 |
| user output |
|---|
| 1 2 1 2 3 |
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 6 |
| correct output |
|---|
| 1 3 2 2 1 3 |
| user output |
|---|
| 1 1 1 2 2 3 |
Test 5
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 7 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 6
Group: 1, 2
Verdict: WRONG ANSWER
| input |
|---|
| 8 |
| correct output |
|---|
| 2 3 1 2 3 3 2 1 |
| user output |
|---|
| 1 1 1 2 1 2 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 1 1 2 2 2 3 1 3 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 10 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 9
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 42 |
| correct output |
|---|
| 1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
Test 10
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 95 |
| correct output |
|---|
| 1 3 1 3 2 1 2 3 3 2 1 1 2 3 3 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... Truncated |
Test 11
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 96 |
| correct output |
|---|
| 1 3 2 2 1 3 1 2 3 3 2 1 1 2 3 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... Truncated |
Test 12
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 97 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 13
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 98 |
| correct output |
|---|
| 2 3 1 2 3 3 2 1 1 2 3 3 2 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... Truncated |
Test 14
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 99 |
| correct output |
|---|
| 1 2 3 1 2 3 3 2 1 1 2 3 3 2 1 ... |
| user output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... Truncated |
Test 15
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
