Task: | Luokittelija |
Sender: | antti röyskö |
Submission time: | 2019-01-17 15:50:52 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 19 |
#2 | ACCEPTED | 24 |
#3 | ACCEPTED | 27 |
#4 | ACCEPTED | 30 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.02 s | 1 | details |
#2 | ACCEPTED | 0.01 s | 2 | details |
#3 | ACCEPTED | 0.02 s | 3 | details |
#4 | ACCEPTED | 0.01 s | 4 | details |
Code
#include <iostream>#include <string>#include <vector>using namespace std;vector<string> res;void addMoves(char c) {string add[4] = {"?00 -> 0?0", "?01 -> 0?1", "?10 -> 1?0", "?11 -> 1?1"};for (int i = 0; i < 4; ++i) {add[i][0] = c;add[i][8] = c;res.push_back(add[i]);}}void addSwaps(char a, char b) {string add[2] = {"?0_ -> _0?", "?1_ -> _1?"};for (int i = 0; i < 2; ++i) {add[i][0] = a;add[i][2] = b;add[i][7] = b;add[i][9] = a;res.push_back(add[i]);}}void addEat(char a, char zt, char ot) {string add = "?0 -> _";add[0] = a;add[6] = zt;res.push_back(add);add[1] = '1';add[6] = ot;res.push_back(add);}int main() {int k;cin >> k;// 2 commands to move start marker to startres.push_back("0X -> X0");res.push_back("1X -> X1");// 16 move commandsaddMoves('A');addMoves('B');addMoves('C');addMoves('D');// 12 swap commandsaddSwaps('B', 'A');addSwaps('C', 'B');addSwaps('C', 'A');addSwaps('D', 'C');addSwaps('D', 'B');addSwaps('D', 'A');// 2 commands for building spaceif (k == 2) {res.push_back("X0 -> EXA");res.push_back("X1 -> FXA");} else if (k == 3) {res.push_back("X0 -> EXAB");res.push_back("X1 -> FXAB");} else if (k == 4) {res.push_back("X0 -> EXABC");res.push_back("X1 -> FXABC");} else if (k == 5) {res.push_back("X0 -> EXABCD");res.push_back("X1 -> FXABCD");}// 8 commands for eating numsaddEat('A', 'G', 'H');addEat('B', 'E', 'F');addEat('C', 'G', 'H');addEat('D', 'E', 'F');// 2 commands to move start marker to startres.push_back("EX -> XE");res.push_back("FX -> XF");// 4 commands to move end marker to endres.push_back("YE -> EY");res.push_back("YF -> FY");res.push_back("YG -> GY");res.push_back("YH -> HY");// 8 commands for flippingres.push_back("EI -> IE");res.push_back("FI -> IF");res.push_back("EJ -> JE");res.push_back("FJ -> JF");res.push_back("GK -> KG");res.push_back("HK -> KH");res.push_back("GL -> LG");res.push_back("HL -> LH");// 4 commands for turningres.push_back("GI -> K");res.push_back("HJ -> L");res.push_back("EK -> I");res.push_back("FL -> J");// 4 commands to make end start chainsres.push_back("EY -> IY");res.push_back("FY -> JY");res.push_back("GY -> KY");res.push_back("HY -> LY");// 4 commands to make start eatres.push_back("XI -> X");res.push_back("XJ -> X");res.push_back("XK -> X");res.push_back("XL -> X");// 2 commands to make startres.push_back("0 -> X0");res.push_back("1 -> X1");// 4 commands to make endres.push_back("E -> EY");res.push_back("F -> FY");res.push_back("G -> GY");res.push_back("H -> HY");// 1 command to have start eat endres.push_back("XY -> _");// Print rescout << res.size() << '\n';for (auto str : res) cout << str << '\n';}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
2 |
correct output |
---|
42 ED -> DE FD -> DF 1DG -> DG1 GE -> EG ... |
user output |
---|
73 0X -> X0 1X -> X1 A00 -> 0A0 A01 -> 0A1 ... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
input |
---|
3 |
correct output |
---|
54 ED -> DE FD -> DF HDG -> DGH IDG -> DGI ... |
user output |
---|
73 0X -> X0 1X -> X1 A00 -> 0A0 A01 -> 0A1 ... Truncated |
Test 3
Group: 3
Verdict: ACCEPTED
input |
---|
4 |
correct output |
---|
66 ED -> DE FD -> DF HDG -> DGH IDG -> DGI ... |
user output |
---|
73 0X -> X0 1X -> X1 A00 -> 0A0 A01 -> 0A1 ... Truncated |
Test 4
Group: 4
Verdict: ACCEPTED
input |
---|
5 |
correct output |
---|
78 ED -> DE FD -> DF HDG -> DGH IDG -> DGI ... |
user output |
---|
73 0X -> X0 1X -> X1 A00 -> 0A0 A01 -> 0A1 ... Truncated |