Task: | Shakki |
Sender: | |
Submission time: | 2015-12-06 15:12:37 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 28 |
#2 | ACCEPTED | 21 |
#3 | ACCEPTED | 24 |
#4 | ACCEPTED | 27 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.06 s | 1 | details |
#2 | ACCEPTED | 0.05 s | 1 | details |
#3 | ACCEPTED | 0.04 s | 1 | details |
#4 | ACCEPTED | 0.05 s | 1 | details |
#5 | ACCEPTED | 0.05 s | 1 | details |
#6 | ACCEPTED | 0.06 s | 1 | details |
#7 | ACCEPTED | 0.05 s | 1 | details |
#8 | ACCEPTED | 0.05 s | 1 | details |
#9 | ACCEPTED | 0.05 s | 1 | details |
#10 | ACCEPTED | 0.05 s | 1 | details |
#11 | ACCEPTED | 0.06 s | 2 | details |
#12 | ACCEPTED | 0.05 s | 2 | details |
#13 | ACCEPTED | 0.05 s | 2 | details |
#14 | ACCEPTED | 0.06 s | 2 | details |
#15 | ACCEPTED | 0.05 s | 2 | details |
#16 | ACCEPTED | 0.05 s | 2 | details |
#17 | ACCEPTED | 0.09 s | 2 | details |
#18 | ACCEPTED | 0.06 s | 2 | details |
#19 | ACCEPTED | 0.05 s | 2 | details |
#20 | ACCEPTED | 0.05 s | 2 | details |
#21 | ACCEPTED | 0.06 s | 3 | details |
#22 | ACCEPTED | 0.05 s | 3 | details |
#23 | ACCEPTED | 0.05 s | 3 | details |
#24 | ACCEPTED | 0.06 s | 3 | details |
#25 | ACCEPTED | 0.05 s | 3 | details |
#26 | ACCEPTED | 0.06 s | 3 | details |
#27 | ACCEPTED | 0.05 s | 3 | details |
#28 | ACCEPTED | 0.04 s | 3 | details |
#29 | ACCEPTED | 0.04 s | 3 | details |
#30 | ACCEPTED | 0.06 s | 3 | details |
#31 | ACCEPTED | 0.06 s | 4 | details |
#32 | ACCEPTED | 0.06 s | 4 | details |
#33 | ACCEPTED | 0.06 s | 4 | details |
#34 | ACCEPTED | 0.05 s | 4 | details |
#35 | ACCEPTED | 0.04 s | 4 | details |
#36 | ACCEPTED | 0.05 s | 4 | details |
#37 | ACCEPTED | 0.05 s | 4 | details |
#38 | ACCEPTED | 0.06 s | 4 | details |
#39 | ACCEPTED | 0.05 s | 4 | details |
#40 | ACCEPTED | 0.07 s | 4 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:155:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < moves.size() / 2; ++i) ^
Code
#include <vector>#include <iostream>#include <cstdio>#include <unistd.h>using namespace std;int main() {int b[8][8];vector<int> moves;/*auto print_board = [&]() {for (int i = 0; i < 8; ++i) {for (int j = 0; j < 8; ++j) {cout << b[i][j];}cout << "\n";}};*/auto rot = [&] (int i, int j) {char c = b[i][j];b[i][j] = b[i+1][j];b[i+1][j] = b[i+1][j+1];b[i+1][j+1] = b[i][j+1];b[i][j+1] = c;moves.push_back(i);moves.push_back(j);//cout << "rot(" << i << "," << j << ")\n";//print_board();//cout << "\n";//sleep(1);};auto get = [&] (int c, int i, int j) {int i0 = i;int j0 = j;++i;--j;while (true) {while (j >= 0) {if (b[i][j] == c) {if (i > i0) {rot(i-1, j);--i;}while (j == 0 || j < j0) {rot(i, j);++j;}if (i == 0) {rot(i, j-1);++i;}while (j > j0 + 1) {rot(i-1, j-1);--j;}while (i < i0) {rot(i, j-1);++i;}return;}--j;}--i;j = 7;}};auto get2 = [&] (int c, int i, int j) {int i0 = i;int j0 = j;++i;--j;while (true) {while (j >= 0) {if (b[i][j] == c) {if (i > i0) {rot(i-1, j);--i;}while (j == 0 || j < j0) {rot(i, j);++j;}if (i == 0) {rot(i, j-1);++i;}while (j > j0 + 1) {rot(i-1, j-1);--j;}while (i < i0) {rot(i, j-1);++i;}return;}--j;}--i;j = j0 - 1;}};for (int i = 0; i < 8; ++i) {for (int j = 0; j < 8; ++j) {char c;cin >> c;b[i][j] = (c == 'M' ? 0 : 1);}}//print_board();//cout << "\n";for (int i = 6; i > 0; --i) {for (int j = 6; j >= 0; j -= 2) {//cout << "i = " << i << ", j = " << j << "\n";if (b[i][j] && b[i+1][j] && b[i][j+1] && b[i+1][j+1])get(0, i, j);if (!b[i][j] && !b[i+1][j] && !b[i][j+1] && !b[i+1][j+1])get(1, i, j);while (b[i+1][j] != (i + j) % 2 || b[i+1][j+1] == (i + j) % 2)rot(i, j);}}int i = 0;for (int j = 6; j >= 0; --j) {//cout << "i = " << i << ", j = " << j << "\n";if (b[i][j] && b[i+1][j] && b[i][j+1] && b[i+1][j+1])get2(0, i, j);if (!b[i][j] && !b[i+1][j] && !b[i][j+1] && !b[i+1][j+1])get2(1, i, j);while (b[i][j+1] != (i + j) % 2 || b[i+1][j+1] == (i + j) % 2)rot(i, j);}if (b[1][0] == 1) {rot(1, 0);rot(1, 0);rot(1, 0);rot(0, 0);rot(0, 0);rot(1, 0);rot(0, 0);}cout << moves.size() / 2 << "\n";for (int i = 0; i < moves.size() / 2; ++i)cout << moves[i*2 + 1] + 1 << " " << moves[i*2] + 1 << "\n";//print_board();//cout << "\n";}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
VMMVVMVV MMVVMVVV MMVVMMMM MVVVMVVM MVVVVMVM ... |
correct output |
---|
100000 |
user output |
---|
57 5 7 5 7 5 7 1 7 ... |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
MVMVVMMV VVMMVVVV VMMVMMVM MVVVVMVM MVMVMMVM ... |
correct output |
---|
100000 |
user output |
---|
61 7 7 7 7 3 7 3 7 ... |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
VMMMVMVV MMMVMVMV VMMVMVVM VVVMVMMV MVMVMVMV ... |
correct output |
---|
100000 |
user output |
---|
74 2 7 2 7 1 7 1 7 ... |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
VVVMVMVV VMMVMVMM MVVMMVMV VMVMMVMM MMVVMMVM ... |
correct output |
---|
100000 |
user output |
---|
62 7 7 7 7 7 7 4 7 ... |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
MVMVVMMM VVMMVVMV MVVMVVMM VMVMVMMV MMVMVVVM ... |
correct output |
---|
100000 |
user output |
---|
74 6 7 6 7 7 7 7 7 ... |
Test 6
Group: 1
Verdict: ACCEPTED
input |
---|
VMMVMVVM VVMMVVMM MMMVMVVM VMMVMMVM MVMVMMMV ... |
correct output |
---|
100000 |
user output |
---|
58 7 7 7 6 7 6 2 6 ... |
Test 7
Group: 1
Verdict: ACCEPTED
input |
---|
MVVVVMMM MMMMMMMM VVVVVMMV MMVVMVVM VMVVVVMV ... |
correct output |
---|
100000 |
user output |
---|
79 7 7 7 7 7 7 5 7 ... |
Test 8
Group: 1
Verdict: ACCEPTED
input |
---|
VMMVMVMM MMMVVMMM MVVVVVVV VVVVMMMV MVVVMVVM ... |
correct output |
---|
100000 |
user output |
---|
76 7 7 5 6 4 6 3 6 ... |
Test 9
Group: 1
Verdict: ACCEPTED
input |
---|
VVVVVMMM MMVVVVVV MVVVMMMM VVMVVVVM VMMVMVMM ... |
correct output |
---|
100000 |
user output |
---|
96 7 7 7 7 5 7 5 7 ... |
Test 10
Group: 1
Verdict: ACCEPTED
input |
---|
VMMVMMMM VVMVVVVV VMMVMVMV VMMVMVMM VVVMMMMM ... |
correct output |
---|
100000 |
user output |
---|
75 7 7 5 7 3 7 7 6 ... |
Test 11
Group: 2
Verdict: ACCEPTED
input |
---|
VMVMVVMM MMVMVVMM VMVVVMMV VVVMVMVM VVMMVVMM ... |
correct output |
---|
25000 |
user output |
---|
72 7 7 3 7 3 7 1 7 ... |
Test 12
Group: 2
Verdict: ACCEPTED
input |
---|
MVMVVMVV VMMVVMVM VMVVVMMM VMMMMVVM MMVVVMMM ... |
correct output |
---|
25000 |
user output |
---|
53 7 7 4 7 4 7 5 7 ... |
Test 13
Group: 2
Verdict: ACCEPTED
input |
---|
MVVMMVVV MMVVMVMM VVVMVMVV VMVMMMMM MVVMMVMV ... |
correct output |
---|
25000 |
user output |
---|
59 7 7 5 7 5 7 5 7 ... |
Test 14
Group: 2
Verdict: ACCEPTED
input |
---|
VVMMMVMV VMVVVMVV VVMVVVMM MVVMVMVM MMVVMMMM ... |
correct output |
---|
25000 |
user output |
---|
78 4 7 4 7 1 7 7 6 ... |
Test 15
Group: 2
Verdict: ACCEPTED
input |
---|
MVVVMVVV MMMMVMMM MVMMMVVM MMVVVMVM VMVVVMMV ... |
correct output |
---|
25000 |
user output |
---|
64 5 7 5 7 6 7 7 7 ... |
Test 16
Group: 2
Verdict: ACCEPTED
input |
---|
VMMVMVVM VMMVVVVV MVMVMMVM VMMVVVMV VVMVMMVM ... |
correct output |
---|
25000 |
user output |
---|
60 7 7 5 7 1 7 1 7 ... |
Test 17
Group: 2
Verdict: ACCEPTED
input |
---|
MVVMMVVM MVVVMMMV MVVMMVVM VMMVMVMV VMMVMMMM ... |
correct output |
---|
25000 |
user output |
---|
62 5 7 3 7 3 7 1 7 ... |
Test 18
Group: 2
Verdict: ACCEPTED
input |
---|
MVMMVVMM VVMMMMVV VMVVVVVM MVMMMVMV VMVVVMVM ... |
correct output |
---|
25000 |
user output |
---|
42 7 6 6 6 5 6 4 6 ... |
Test 19
Group: 2
Verdict: ACCEPTED
input |
---|
MVVVVVVV VMMVMVVM VMVMMMMV MVMVMMMM MMVVVMMM ... |
correct output |
---|
25000 |
user output |
---|
70 7 7 7 7 7 7 5 7 ... |
Test 20
Group: 2
Verdict: ACCEPTED
input |
---|
MVVVMMMM MMVMMVMV MVVVVVMM VVMMMVVM VVVMVMVV ... |
correct output |
---|
25000 |
user output |
---|
64 5 7 5 7 5 7 2 7 ... |
Test 21
Group: 3
Verdict: ACCEPTED
input |
---|
VMVVMVMM MMMMVMMV VVVMVVVV MVMVMVVM VMMVMMMM ... |
correct output |
---|
5000 |
user output |
---|
36 7 7 7 7 5 7 5 7 ... |
Test 22
Group: 3
Verdict: ACCEPTED
input |
---|
VVVVVVMM MMMVMMVV VVVVVVMV MMMVMVVV MVVMMMMV ... |
correct output |
---|
5000 |
user output |
---|
75 3 7 3 7 3 6 2 6 ... |
Test 23
Group: 3
Verdict: ACCEPTED
input |
---|
MMVMVMVV MMVVMVVM VMMVVMVM MMMMMMVV MVVVVMVM ... |
correct output |
---|
5000 |
user output |
---|
76 7 7 7 7 5 7 5 7 ... |
Test 24
Group: 3
Verdict: ACCEPTED
input |
---|
MVMVVMVM VVMVVMVM MMMMVMVV MVVMMVVV MMMMMVVV ... |
correct output |
---|
5000 |
user output |
---|
93 7 7 7 7 7 7 5 7 ... |
Test 25
Group: 3
Verdict: ACCEPTED
input |
---|
MVVVMVVM MMMMVVMV VMMVMMVV VVMVMVMV MVMMMVMM ... |
correct output |
---|
5000 |
user output |
---|
53 7 7 7 7 3 7 7 6 ... |
Test 26
Group: 3
Verdict: ACCEPTED
input |
---|
VMVMVVVM MMMVVVMM MMVVVVVM VVVVMMVV VMMVVMMV ... |
correct output |
---|
5000 |
user output |
---|
71 7 7 7 7 7 7 5 7 ... |
Test 27
Group: 3
Verdict: ACCEPTED
input |
---|
MMVMMVVM MVVVMVMV MVVVMVVM VMVMMMVV VMMVVVVV ... |
correct output |
---|
5000 |
user output |
---|
78 5 7 5 7 5 7 3 7 ... |
Test 28
Group: 3
Verdict: ACCEPTED
input |
---|
MVMMVMMV VMVMMMVV MMMMVVMV VVVVMMMM MMMVMMVV ... |
correct output |
---|
5000 |
user output |
---|
71 7 7 7 7 5 6 4 6 ... |
Test 29
Group: 3
Verdict: ACCEPTED
input |
---|
VVVVMVMV MMMVVMVM MVVVMVMV VVVMVVMM VMMMMMVV ... |
correct output |
---|
5000 |
user output |
---|
55 7 7 7 7 5 7 5 7 ... |
Test 30
Group: 3
Verdict: ACCEPTED
input |
---|
MVVVMVVV MMVVMMMM MVVVVVVV MVMVMMMV VMMMVMMM ... |
correct output |
---|
5000 |
user output |
---|
77 7 7 7 7 5 7 5 7 ... |
Test 31
Group: 4
Verdict: ACCEPTED
input |
---|
MVMMVMMV VVVMMVVV VMMVVMMV VVMMMVVM VVVMMMVV ... |
correct output |
---|
250 |
user output |
---|
58 6 7 6 7 7 7 7 7 ... |
Test 32
Group: 4
Verdict: ACCEPTED
input |
---|
VVMMVVVM VMVVMMVV VMMMMMMV VVMVMVVV VMMVMVMM ... |
correct output |
---|
250 |
user output |
---|
64 3 7 3 7 1 7 1 7 ... |
Test 33
Group: 4
Verdict: ACCEPTED
input |
---|
MMVVMVMV VVVMVMMM VVVVMVMM MVVMVVMV VMMVMVVM ... |
correct output |
---|
250 |
user output |
---|
66 7 7 7 7 7 7 6 6 ... |
Test 34
Group: 4
Verdict: ACCEPTED
input |
---|
VMVMVVMV MVVMMMMM MMVVMMMM VMVMVVVM VMMMVVVM ... |
correct output |
---|
250 |
user output |
---|
65 5 7 3 7 3 7 3 7 ... |
Test 35
Group: 4
Verdict: ACCEPTED
input |
---|
VMVMVMMM VMMVVVMM MMVMVMMM MVMMVVVV VMMVMMMV ... |
correct output |
---|
250 |
user output |
---|
86 5 7 3 7 7 6 7 6 ... |
Test 36
Group: 4
Verdict: ACCEPTED
input |
---|
MVMVMVMM MVMVMMMV MMVVVVMM MVMVVVVV VMMMVVMM ... |
correct output |
---|
250 |
user output |
---|
62 7 6 7 6 7 6 5 6 ... |
Test 37
Group: 4
Verdict: ACCEPTED
input |
---|
VMMMMVMM VVMMMVMV VMVVVVVV MVMMMVVM VMVMMVVM ... |
correct output |
---|
250 |
user output |
---|
77 5 7 5 7 3 7 3 7 ... |
Test 38
Group: 4
Verdict: ACCEPTED
input |
---|
VMMVMVMV VVMVMVMM MMMVMVMM MVVVVMMM MMVVVMVV ... |
correct output |
---|
250 |
user output |
---|
56 5 7 5 7 3 7 3 7 ... |
Test 39
Group: 4
Verdict: ACCEPTED
input |
---|
MMMMMVMV MVVMMMMV VMVVVVMM VMVVVMMV MVMMMVMM ... |
correct output |
---|
250 |
user output |
---|
65 3 7 3 7 1 7 1 7 ... |
Test 40
Group: 4
Verdict: ACCEPTED
input |
---|
VMMMMMMV VMMVVVVV MVMMVMMV MVVVVMMV MVVVVMMM ... |
correct output |
---|
250 |
user output |
---|
64 5 7 5 7 5 7 3 7 ... |