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) |