Task: | Merkkijono |
Sender: | SeveriK |
Submission time: | 2018-01-18 17:02:57 +0200 |
Language: | C++ |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | TIME LIMIT EXCEEDED | -- | details |
#3 | TIME LIMIT EXCEEDED | -- | details |
#4 | TIME LIMIT EXCEEDED | -- | details |
#5 | TIME LIMIT EXCEEDED | -- | details |
Code
#include <iostream> #include <cmath> #include <iomanip> #include <string> #include <vector> #include <algorithm> using namespace std; int main() { string input; cin >> input; vector<int> abNums; vector<int> nums; vector<int> moves; for(int i = 0; i < 26; i++) { abNums.push_back(i + 1); if(input[i] == 'A') { nums.push_back(1); } else if(input[i] == 'B') { nums.push_back(2); } else if(input[i] == 'C') { nums.push_back(3); } else if(input[i] == 'D') { nums.push_back(4); } else if(input[i] == 'E') { nums.push_back(5); } else if(input[i] == 'F') { nums.push_back(6); } else if(input[i] == 'G') { nums.push_back(7); } else if(input[i] == 'H') { nums.push_back(8); } else if(input[i] == 'I') { nums.push_back(9); } else if(input[i] == 'J') { nums.push_back(10); } else if(input[i] == 'K') { nums.push_back(11); } else if(input[i] == 'L') { nums.push_back(12); } else if(input[i] == 'M') { nums.push_back(13); } else if(input[i] == 'N') { nums.push_back(14); } else if(input[i] == 'O') { nums.push_back(15); } else if(input[i] == 'P') { nums.push_back(16); } else if(input[i] == 'Q') { nums.push_back(17); } else if(input[i] == 'R') { nums.push_back(18); } else if(input[i] == 'S') { nums.push_back(19); } else if(input[i] == 'T') { nums.push_back(20); } else if(input[i] == 'U') { nums.push_back(21); } else if(input[i] == 'V') { nums.push_back(22); } else if(input[i] == 'W') { nums.push_back(23); } else if(input[i] == 'X') { nums.push_back(24); } else if(input[i] == 'Y') { nums.push_back(25); } else if(input[i] == 'Z') { nums.push_back(26); } } while(nums != abNums) { if(nums[0] != nums[1] - 1 && nums[0] != (nums[nums.size() - 1] - 25)) { if(nums[0] < nums[1]) { nums.insert(nums.begin(), nums[nums.size() - 1]); nums.pop_back(); moves.push_back(0); int a = nums[0]; nums[0] = nums[1]; nums[1] = a; moves.push_back(1); } else { int a = nums[0]; nums[0] = nums[1]; nums[1] = a; moves.push_back(1); } } else { nums.insert(nums.begin(), nums[nums.size() - 1]); nums.pop_back(); moves.push_back(0); } } int moveCount = moves.size(); cout << moveCount << endl; for(int i = 0; i < moveCount; i++) { if(moves[i] == 0) { cout << "MOVE" << endl; } else { cout << "SWAP" << endl; } } return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
ABCDEFGHIJKLMNOPQRSTUVWXYZ |
correct output |
---|
0 |
user output |
---|
0 |
Test 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
ZYXWVUTSRQPONMLKJIHGFEDCBA |
correct output |
---|
923 MOVE MOVE SWAP MOVE ... |
user output |
---|
(empty) |
Test 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
RPJMFWBHYQOTXUAENLDGZISCVK |
correct output |
---|
611 SWAP MOVE MOVE SWAP ... |
user output |
---|
(empty) |
Test 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
GWJSPBHANMXYFLKIDORVUCEZQT |
correct output |
---|
659 MOVE SWAP MOVE SWAP ... |
user output |
---|
(empty) |
Test 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
BJYNFLKEIUCZMQHRAXOGWPSDTV |
correct output |
---|
624 MOVE SWAP MOVE SWAP ... |
user output |
---|
(empty) |