Task: | Split in Three |
Sender: | b23v |
Submission time: | 2021-01-30 17:27:06 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 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 | WRONG ANSWER | 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.08 s | 2 | details |
#12 | TIME LIMIT EXCEEDED | -- | 2 | details |
#13 | WRONG ANSWER | 0.04 s | 2 | details |
#14 | WRONG ANSWER | 0.03 s | 2 | details |
#15 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
#include <iostream>#include <vector>#include <algorithm>#include <set>#include <map>#include <climits>#include <cstring>#include <unordered_set>using namespace std;using ll = long long;using ull = unsigned long long;using vi = vector<int>;using ii = pair<int,int>;using vii = vector<pair<int,int>>;using vb = vector<bool>;template<typename T>using Graph = vector<vector<T>>;struct State{int i, a, b;bool operator== (const State& state) const{return i == state.i && a == state.a && b == state.b;}};struct StateHash{size_t operator() (const State& state) const{size_t res = state.a;res |= state.b << 8;res |= state.i << 16;return res;}};int n, mx, done, total;vi state;//set<pair<int, ii>> visited;unordered_set<State, StateHash> visited;void run(int i, int a, int b){int c = total - a - b;if(a > mx || b > mx || a > c || b > c) return;int tn = min(a, b);int tm = max(a, b);a = tn;b = tm;State s { i, a, b };if(visited.count(s)) return;visited.insert(s);// cout << a << ' ' << b << ' ' << c << '\n';if(a + 1 == b && b + 1 == c){done = 1;return;}if(i > n) return;state[i] = 1;run(i + 1, a + i, b);if(done) return;state[i] = 2;run(i + 1, a, b + i);if(done) return;state[i] = 3;run(i + 1, a, b);}void solve(){cin >> n;state.assign(n + 1, 3);total = n * (n + 1) / 2;mx = (total + 2) / 3;run(1, 0, 0);if(!done){cout << "IMPOSSIBLE\n";return;}for(int i = 1; i <= n; ++i){cout << state[i] << ' ';}cout << '\n';}int main (){#ifdef LOCALfreopen("input.txt", "rt", stdin);freopen("output.txt", "wt", stdout);#endifios_base::sync_with_stdio(false);cin.tie(0);int tc = 1;// cin >> tc;while(tc--) solve();}
Test details
Test 1
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
3 |
correct output |
---|
1 2 3 |
user output |
---|
1 1 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 3 2 3 1 |
Test 4
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
6 |
correct output |
---|
1 3 2 2 1 3 |
user output |
---|
1 1 3 2 3 1 |
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 1 2 3 3 1 |
Test 7
Group: 1, 2
Verdict: WRONG ANSWER
input |
---|
9 |
correct output |
---|
1 2 3 1 2 3 3 2 1 |
user output |
---|
1 1 1 1 1 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: TIME LIMIT EXCEEDED
input |
---|
97 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
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: TIME LIMIT EXCEEDED
input |
---|
100 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |