CSES - Datatähti Open 2019 - Results
Submission details
Task:Robot
Sender:tutis
Submission time:2019-01-19 20:39:44 +0200
Language:C++
Status:READY
Result:12
Feedback
groupverdictscore
#1ACCEPTED12
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1details
#2ACCEPTED0.02 s1details
#3ACCEPTED0.01 s1details
#4ACCEPTED0.02 s1details
#5ACCEPTED0.02 s1details
#6ACCEPTED0.01 s1details
#7ACCEPTED0.01 s1details
#8ACCEPTED0.02 s1details
#9ACCEPTED0.03 s2details
#10ACCEPTED0.02 s2details
#11ACCEPTED0.02 s2details
#12ACCEPTED0.02 s2details
#130.92 s2details
#140.93 s2details
#15ACCEPTED0.01 s2details
#160.93 s2details
#170.93 s2details
#18ACCEPTED0.02 s3details
#19ACCEPTED0.02 s3details
#20ACCEPTED0.02 s3details
#21ACCEPTED0.02 s3details
#220.93 s3details
#230.93 s3details
#24ACCEPTED0.03 s3details
#250.93 s3details
#260.92 s3details
#27ACCEPTED0.01 s3details
#280.92 s3details
#290.93 s3details
#300.93 s3details
#310.93 s3details
#320.92 s3details
#330.93 s3details
#340.93 s3details
#350.93 s3details
#360.93 s3details
#370.93 s3details
#380.92 s3details
#390.94 s3details

Compiler report

input/code.cpp: In function 'bool tinka(int, int, std::__cxx11::string*, int)':
input/code.cpp:17:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (A.size() == n * m && x == 0 && y == 0)
       ~~~~~~~~~^~~~~~~~

Code

/*input
4 4
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
bool tinka(int n, int m, string a[], int maxi = 100)
{
int x = 0, y = 0;
int t = 0;
set<pair<int, int>>A = {{x, y}};
while (maxi > 0)
{
if (A.size() == n * m && x == 0 && y == 0)
return true;
if (x + dx[t] < 0 || y + dy[t] < 0 || x + dx[t] >= n || y + dy[t] >= m)
return false;
bool same = (a[x][y] == a[x + dx[t]][y + dy[t]]);
if (a[x][y] == 'R')
{
a[x][y] = 'G';
}
else if (a[x][y] == 'G')
{
a[x][y] = 'B';
}
else
a[x][y] = 'R';
x += dx[t];
y += dy[t];
if (!same)
t = (t + 1) % 4;
A.insert({x, y});
maxi--;
}
return false;
}
int main()
{
clock_t pradzia = clock();
srand(2019);
ios_base::sync_with_stdio(false);
int n, m;
cin >> n >> m;
{
if (n == 2)
{
for (int t = 0; t < m; t++)
{
if (t < m - 1)
cout << "R";
else
cout << "B\n";
}
for (int t = 0; t < m; t++)
{
if (t < m - 1)
{
if (t == 0)
cout << "B";
else
cout << "G";
}
else
cout << "G\n";
}
return 0;
}
if (m == 2)
{
cout << "RB\n";
for (int i = 0; i < n - 2; i++)
cout << "RB\n";
cout << "RG\n";
return 0;
}
}
string x[2] = {
"RRRB",
"BGGG"
};
while (double(clock() - pradzia) / CLOCKS_PER_SEC <= 0.9)
{
string a[n];
for (int i = 0; i < n; i++)
{
a[i] = string(m, 'R');
for (int t = 0; t < m; t++)
{
if (rand() % 3 == 0)
{
a[i][t] = 'R';
}
else if (rand() % 2 == 0)
{
a[i][t] = 'G';
}
else
{
a[i][t] = 'B';
}
}
}
string b[n];
for (int i = 0; i < n; i++)
{
b[i] = a[i];
}
if (tinka(n, m, a))
{
for (int i = 0; i < n; i++)
cout << b[i] << "\n";
return 0;
}
}
if (n == 4 && m == 4)
exit(15);
cout << "IMPOSSIBLE\n";
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
2 2

correct output
RG
GR

user output
RB
BG

Test 2

Group: 1

Verdict: ACCEPTED

input
2 4

correct output
RRRG
GRRR

user output
RRRB
BGGG

Test 3

Group: 1

Verdict: ACCEPTED

input
2 6

correct output
RRRRRG
GRRRRR

user output
RRRRRB
BGGGGG

Test 4

Group: 1

Verdict: ACCEPTED

input
2 10

correct output
RRRRRRRRRG
GRRRRRRRRR

user output
RRRRRRRRRB
BGGGGGGGGG

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
RB
BG

Test 10

Group: 2

Verdict: ACCEPTED

input
2 4

correct output
RRRG
GRRR

user output
RRRB
BGGG

Test 11

Group: 2

Verdict: ACCEPTED

input
2 6

correct output
RRRRRG
GRRRRR

user output
RRRRRB
BGGGGG

Test 12

Group: 2

Verdict: ACCEPTED

input
4 2

correct output
RG
GG
GG
GR

user output
RB
RB
RB
RG

Test 13

Group: 2

Verdict:

input
4 4

correct output
IMPOSSIBLE

user output
(empty)

Test 14

Group: 2

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
IMPOSSIBLE

Test 15

Group: 2

Verdict: ACCEPTED

input
6 2

correct output
RG
GG
GG
GG
GG
...

user output
RB
RB
RB
RB
RB
...

Test 16

Group: 2

Verdict:

input
6 4

correct output
RRRG
RGBG
RRGG
BBGG
GRBG
...

user output
IMPOSSIBLE

Test 17

Group: 2

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
IMPOSSIBLE

Test 18

Group: 3

Verdict: ACCEPTED

input
2 2

correct output
RG
GR

user output
RB
BG

Test 19

Group: 3

Verdict: ACCEPTED

input
2 4

correct output
RRRG
GRRR

user output
RRRB
BGGG

Test 20

Group: 3

Verdict: ACCEPTED

input
2 6

correct output
RRRRRG
GRRRRR

user output
RRRRRB
BGGGGG

Test 21

Group: 3

Verdict: ACCEPTED

input
4 2

correct output
RG
GG
GG
GR

user output
RB
RB
RB
RG

Test 22

Group: 3

Verdict:

input
4 4

correct output
IMPOSSIBLE

user output
(empty)

Test 23

Group: 3

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
IMPOSSIBLE

Test 24

Group: 3

Verdict: ACCEPTED

input
6 2

correct output
RG
GG
GG
GG
GG
...

user output
RB
RB
RB
RB
RB
...

Test 25

Group: 3

Verdict:

input
6 4

correct output
RRRG
RGBG
RRGG
BBGG
GRBG
...

user output
IMPOSSIBLE

Test 26

Group: 3

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
IMPOSSIBLE

Test 27

Group: 3

Verdict: ACCEPTED

input
2 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...
Truncated

Test 28

Group: 3

Verdict:

input
4 20

correct output
RRRRRRRRRRRRRRRRRRRG
GBBBBBBBBBBBBBBBGRGG
GGRRRRRRRRRRRRRRRBRG
GRRRRRRRRRRRRRRRRBRR

user output
IMPOSSIBLE

Test 29

Group: 3

Verdict:

input
4 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE

Test 30

Group: 3

Verdict:

input
10 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
IMPOSSIBLE

Test 31

Group: 3

Verdict:

input
12 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
IMPOSSIBLE

Test 32

Group: 3

Verdict:

input
10 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
IMPOSSIBLE

Test 33

Group: 3

Verdict:

input
12 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
IMPOSSIBLE

Test 34

Group: 3

Verdict:

input
10 90

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE

Test 35

Group: 3

Verdict:

input
90 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
IMPOSSIBLE

Test 36

Group: 3

Verdict:

input
100 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE

Test 37

Group: 3

Verdict:

input
98 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE

Test 38

Group: 3

Verdict:

input
100 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE

Test 39

Group: 3

Verdict:

input
98 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
IMPOSSIBLE