Task: | Robot |
Sender: | pwild |
Submission time: | 2019-01-20 00:30:24 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 12 |
#2 | ACCEPTED | 32 |
#3 | ACCEPTED | 56 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.02 s | 1 | details |
#2 | ACCEPTED | 0.01 s | 1 | details |
#3 | ACCEPTED | 0.02 s | 1 | details |
#4 | ACCEPTED | 0.01 s | 1 | details |
#5 | ACCEPTED | 0.02 s | 1 | details |
#6 | ACCEPTED | 0.02 s | 1 | details |
#7 | ACCEPTED | 0.01 s | 1 | details |
#8 | ACCEPTED | 0.01 s | 1 | details |
#9 | ACCEPTED | 0.02 s | 2 | details |
#10 | ACCEPTED | 0.01 s | 2 | details |
#11 | ACCEPTED | 0.03 s | 2 | details |
#12 | ACCEPTED | 0.01 s | 2 | details |
#13 | ACCEPTED | 0.02 s | 2 | details |
#14 | ACCEPTED | 0.02 s | 2 | details |
#15 | ACCEPTED | 0.01 s | 2 | details |
#16 | ACCEPTED | 0.01 s | 2 | details |
#17 | ACCEPTED | 0.01 s | 2 | details |
#18 | ACCEPTED | 0.03 s | 3 | details |
#19 | ACCEPTED | 0.02 s | 3 | details |
#20 | ACCEPTED | 0.02 s | 3 | details |
#21 | ACCEPTED | 0.01 s | 3 | details |
#22 | ACCEPTED | 0.02 s | 3 | details |
#23 | ACCEPTED | 0.01 s | 3 | details |
#24 | ACCEPTED | 0.02 s | 3 | details |
#25 | ACCEPTED | 0.01 s | 3 | details |
#26 | ACCEPTED | 0.03 s | 3 | details |
#27 | ACCEPTED | 0.02 s | 3 | details |
#28 | ACCEPTED | 0.01 s | 3 | details |
#29 | ACCEPTED | 0.02 s | 3 | details |
#30 | ACCEPTED | 0.01 s | 3 | details |
#31 | ACCEPTED | 0.02 s | 3 | details |
#32 | ACCEPTED | 0.02 s | 3 | details |
#33 | ACCEPTED | 0.02 s | 3 | details |
#34 | ACCEPTED | 0.01 s | 3 | details |
#35 | ACCEPTED | 0.02 s | 3 | details |
#36 | ACCEPTED | 0.02 s | 3 | details |
#37 | ACCEPTED | 0.02 s | 3 | details |
#38 | ACCEPTED | 0.01 s | 3 | details |
#39 | ACCEPTED | 0.01 s | 3 | details |
Code
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vl; typedef vector<vl> vvl; typedef pair<ll,ll> pll; typedef vector<bool> vb; const ll oo = 0x3f3f3f3f3f3f3f3f; const double eps = 1e-9; #define sz(c) ll((c).size()) #define all(c) begin(c), end(c) #define FOR(i,a,b) for (ll i = (a); i < (b); i++) #define FORD(i,a,b) for (ll i = (b)-1; i >= (a); i--) #define mp make_pair #define mt make_tuple #define pb push_back #define eb emplace_back #define xx first #define yy second #define has(c,i) ((c).find(i) != end(c)) #define TR(X) ({ if(1) cerr << "TR: " << (#X) << " = " << (X) << endl; }) const ll di[] = {0,1,0,-1}, dj[] = {1,0,-1,0}; bool simulate(vvl a) { ll m = sz(a), n = sz(a[0]); vector<vb> mark(m,vb(n)); ll i = 0, j = 0, dir = 0, cnt = 0; FOR(step,0,1000) { if (!mark[i][j]) { mark[i][j] = true; cnt++; } if (i == 0 && j == 0 && cnt == m*n) { cout << "success!" << endl; return true; } ll &prv = a[i][j]; i += di[dir], j += dj[dir]; if (i < 0 || i >= m || j < 0 || j >= n) { //cout << "out of bounds" << endl; return false; } if (a[i][j] != prv) dir = (dir+1)%4; prv = (prv+1)%3; } //cout << "no success" << endl; return false; } vvl construct(ll m, ll n, vl steps) { vvl a(m,vl(n,-1)); vl cyc = {0,1,0,1,2,1,2,0,2}; ll i = 0, j = 0; FOR(t,0,sz(steps)) { while (steps[t] --> 0) { if (a[i][j] == -1) a[i][j] = cyc[t%9]; i += di[t%4], j += dj[t%4]; } } return a; } void stuff() { vvl a = construct(4,6,{2,2,1,1,3,1,1,2,2,3,5,3}); simulate(a); } vl steps(ll m, ll n) { if (m == 2 || n == 2) return {n-1,m-1,n-1,m-1}; if (m < n) { vl res = steps(n,m); rotate(begin(res),begin(res)+(sz(res)-1),end(res)); return res; } vl res = {3}; FOR(i,0,(n-2)/4) { res.back()--; for (ll x: vl{m-2,1,m-3,3,m-3,1,m-2,4}) res.pb(x); } if (n%4 == 2) { res.back() -= 2; res.pb(m-1); } else { for (ll x: vl{m-4,2,m-5,1,m-3,1,1,2,2}) res.pb(x); } res.pb(n-1), res.pb(m-1); return res; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll m, n; cin >> m >> n; if (m == 4 && n == 4) { cout << "IMPOSSIBLE" << endl; } else { vvl res = construct(m,n,steps(m,n)); //simulate(res); FOR(i,0,m) { FOR(j,0,n) cout << "RGB"[res[i][j]]; cout << endl; } } }
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
2 2 |
correct output |
---|
RG GR |
user output |
---|
RG GR |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
2 4 |
correct output |
---|
RRRG GRRR |
user output |
---|
RRRG GRRR |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
2 6 |
correct output |
---|
RRRRRG GRRRRR |
user output |
---|
RRRRRG GRRRRR |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
2 10 |
correct output |
---|
RRRRRRRRRG GRRRRRRRRR |
user output |
---|
RRRRRRRRRG GRRRRRRRRR |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
2 50 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 6
Group: 1
Verdict: ACCEPTED
input |
---|
2 80 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 7
Group: 1
Verdict: ACCEPTED
input |
---|
2 98 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 8
Group: 1
Verdict: ACCEPTED
input |
---|
2 100 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
2 2 |
correct output |
---|
RG GR |
user output |
---|
RG GR |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
2 4 |
correct output |
---|
RRRG GRRR |
user output |
---|
RRRG GRRR |
Test 11
Group: 2
Verdict: ACCEPTED
input |
---|
2 6 |
correct output |
---|
RRRRRG GRRRRR |
user output |
---|
RRRRRG GRRRRR |
Test 12
Group: 2
Verdict: ACCEPTED
input |
---|
4 2 |
correct output |
---|
RG GG GG GR |
user output |
---|
RG GG GG GR |
Test 13
Group: 2
Verdict: ACCEPTED
input |
---|
4 4 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
4 6 |
correct output |
---|
RRRRRG GBGRGG GGRBRG GRRBRR |
user output |
---|
RRRRRG RBRBGG RRBGBG RGGGRR |
Test 15
Group: 2
Verdict: ACCEPTED
input |
---|
6 2 |
correct output |
---|
RG GG GG GG GG ... |
user output |
---|
RG GG GG GG GG ... |
Test 16
Group: 2
Verdict: ACCEPTED
input |
---|
6 4 |
correct output |
---|
RRRG RGBG RRGG BBGG GRBG ... |
user output |
---|
RRRG RBGG RGRR RBGR RRBR ... |
Test 17
Group: 2
Verdict: ACCEPTED
input |
---|
6 6 |
correct output |
---|
RRRRRG GBGRBG GGGBBG GGGBBG GGRBRG ... |
user output |
---|
RRGBBR RBGBGR RGGRGR RGGRGR RGRRBR ... |
Test 18
Group: 3
Verdict: ACCEPTED
input |
---|
2 2 |
correct output |
---|
RG GR |
user output |
---|
RG GR |
Test 19
Group: 3
Verdict: ACCEPTED
input |
---|
2 4 |
correct output |
---|
RRRG GRRR |
user output |
---|
RRRG GRRR |
Test 20
Group: 3
Verdict: ACCEPTED
input |
---|
2 6 |
correct output |
---|
RRRRRG GRRRRR |
user output |
---|
RRRRRG GRRRRR |
Test 21
Group: 3
Verdict: ACCEPTED
input |
---|
4 2 |
correct output |
---|
RG GG GG GR |
user output |
---|
RG GG GG GR |
Test 22
Group: 3
Verdict: ACCEPTED
input |
---|
4 4 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 23
Group: 3
Verdict: ACCEPTED
input |
---|
4 6 |
correct output |
---|
RRRRRG GBGRGG GGRBRG GRRBRR |
user output |
---|
RRRRRG RBRBGG RRBGBG RGGGRR |
Test 24
Group: 3
Verdict: ACCEPTED
input |
---|
6 2 |
correct output |
---|
RG GG GG GG GG ... |
user output |
---|
RG GG GG GG GG ... |
Test 25
Group: 3
Verdict: ACCEPTED
input |
---|
6 4 |
correct output |
---|
RRRG RGBG RRGG BBGG GRBG ... |
user output |
---|
RRRG RBGG RGRR RBGR RRBR ... |
Test 26
Group: 3
Verdict: ACCEPTED
input |
---|
6 6 |
correct output |
---|
RRRRRG GBGRBG GGGBBG GGGBBG GGRBRG ... |
user output |
---|
RRGBBR RBGBGR RGGRGR RGGRGR RGRRBR ... |
Test 27
Group: 3
Verdict: ACCEPTED
input |
---|
2 100 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 28
Group: 3
Verdict: ACCEPTED
input |
---|
4 20 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRG GBBBBBBBBBBBBBBBGRGG GGRRRRRRRRRRRRRRRBRG GRRRRRRRRRRRRRRRRBRR |
user output |
---|
RRRRRRRRRRRRRRRRRRRG RBRBBBBBBBBBBBBBBBGG RRBGBBBBBBBBBBBBBBBG RGGGRRRRRRRRRRRRRRRR |
Test 29
Group: 3
Verdict: ACCEPTED
input |
---|
4 100 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 30
Group: 3
Verdict: ACCEPTED
input |
---|
10 10 |
correct output |
---|
RRRRRRRRRG GBGRBBGRBG GGGBBGGBBG GGGBBGGBBG GGGBBGGBBG ... |
user output |
---|
RRGBBBRRRB GBGBGGRGBB GGGRGRRBBB GGGRGRRBBB GGGRGRRBBB ... Truncated |
Test 31
Group: 3
Verdict: ACCEPTED
input |
---|
12 12 |
correct output |
---|
RRRRRRRRRRRG RGBBGRBBGRBG RRBGGBBGGBBG RRBGGBBGGBBG RRBGGBBGGBBG ... |
user output |
---|
RRGBBBRRRRRB RBGBGGRGBRGB RGGRGRRBBGGB RGGRGRRBBGGB RGGRGRRBBGGB ... Truncated |
Test 32
Group: 3
Verdict: ACCEPTED
input |
---|
10 12 |
correct output |
---|
RRRRRRRRRRRG RGBBGRBBGRBG RRBGGBBGGBBG RRBGGBBGGBBG RRBGGBBGGBBG ... |
user output |
---|
RRRRRRRRRRRG GBBBBBBBBBGG GGRRRRRRRRRR GBBBBBBBBBGR GRBBBBBBBBBR ... Truncated |
Test 33
Group: 3
Verdict: ACCEPTED
input |
---|
12 10 |
correct output |
---|
RRRRRRRRRG GBGRBBGRBG GGGBBGGBBG GGGBBGGBBG GGGBBGGBBG ... |
user output |
---|
RRGBBBRRRB GBGBGGRGBB GGGRGRRBBB GGGRGRRBBB GGGRGRRBBB ... Truncated |
Test 34
Group: 3
Verdict: ACCEPTED
input |
---|
10 90 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 35
Group: 3
Verdict: ACCEPTED
input |
---|
90 10 |
correct output |
---|
RRRRRRRRRG GBGRBBGRBG GGGBBGGBBG GGGBBGGBBG GGGBBGGBBG ... |
user output |
---|
RRGBBBRRRB GBGBGGRGBB GGGRGRRBBB GGGRGRRBBB GGGRGRRBBB ... Truncated |
Test 36
Group: 3
Verdict: ACCEPTED
input |
---|
100 100 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRGBBBRRRRBBBBRGGGBBBBGGGGBRRR... Truncated |
Test 37
Group: 3
Verdict: ACCEPTED
input |
---|
98 100 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... Truncated |
Test 38
Group: 3
Verdict: ACCEPTED
input |
---|
100 98 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRGBBBRRRRBBBBRGGGBBBBGGGGBRRR... Truncated |
Test 39
Group: 3
Verdict: ACCEPTED
input |
---|
98 98 |
correct output |
---|
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR... |
user output |
---|
RRGBBBRRRRBBBBRGGGBBBBGGGGBRRR... Truncated |