CSES - UKIEPC 2017 - Results
Submission details
Task:Deranging Hat
Sender:Pietari Kaskela
Submission time:2017-10-31 18:42:41 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.04 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.03 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.03 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.04 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.04 sdetails
#11ACCEPTED0.04 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.05 sdetails
#14ACCEPTED0.04 sdetails
#15ACCEPTED0.04 sdetails
#16ACCEPTED0.03 sdetails
#17ACCEPTED0.05 sdetails
#18ACCEPTED0.03 sdetails
#19ACCEPTED0.05 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

int main(){
	string s; cin >> s;
	string s2 = s;
	sort(s2.begin(), s2.end());
	int n = s.length();
	for(int i = 0; i < n; ++i){
		if(s2[i] == s[i])
			continue;
		for(int j = i+1; j < n; ++j){
			if(s2[j] == s[i]){
				if(s2[j] > s2[i])
					cout << j+1 << " " << i+1 << '\n';
				else
					cout << i+1 << " " << j+1 << '\n';
				swap(s2[j], s2[i]);
				break;
			}
		}
	}
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
flimflam

correct output
2 1
5 2
3 5
4 3
7 4

user output
2 1
5 2
4 3
7 4
7 5

Test 2

Verdict: ACCEPTED

input
ofthunderandlightningheardaste...

correct output
661 1
113 661
113 75
235 75
296 235
...

user output
577 1
282 2
827 3
322 4
911 5
...

Test 3

Verdict: ACCEPTED

input
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...

correct output
160 1

user output
2 1
3 2
4 3
5 4
6 5
...

Test 4

Verdict: ACCEPTED

input
azaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
1000 2

user output
1000 2

Test 5

Verdict: ACCEPTED

input
cheeeeeeeeeeeeeeeeeeeeeeeeeeee...

correct output
999 2
1000 999
1000 501

user output
999 2
1000 999

Test 6

Verdict: ACCEPTED

input
zyxwvutsrqponmlkjihgfedcba

correct output
26 1
25 2
24 3
23 4
22 5
...

user output
26 1
25 2
24 3
23 4
22 5
...

Test 7

Verdict: ACCEPTED

input
abcdefghijklmnopqrstuvwxyz

correct output
(empty)

user output
(empty)

Test 8

Verdict: ACCEPTED

input
ykvhyyocxoctrecxiseq

correct output
20 1
11 20
11 2
8 2
8 3
...

user output
18 1
8 2
15 3
6 4
19 5
...

Test 9

Verdict: ACCEPTED

input
fryivkaqqnaffnaulwzih

correct output
4 1
8 4
14 8
13 14
5 13
...

user output
4 1
16 2
20 3
8 4
18 5
...

Test 10

Verdict: ACCEPTED

input
usiotfcnylrezqybqkxafquwhsqzrd...

correct output
103 1
95 103
120 95
100 120
125 100
...

user output
103 1
92 2
40 3
66 4
97 5
...

Test 11

Verdict: ACCEPTED

input
qnlgwypzdyzbluuklmgirwkcrkpzbg...

correct output
82 1
80 82
38 80
37 38
85 37
...

user output
80 1
66 2
56 3
28 4
117 5
...

Test 12

Verdict: ACCEPTED

input
rgnuzalrwqepwprfwpluntelwdjtzf...

correct output
170 1
116 170
79 116
93 79
155 93
...

user output
166 1
59 2
121 3
190 4
250 5
...

Test 13

Verdict: ACCEPTED

input
sdgfzxytizorpedmiiciipwybyless...

correct output
191 1
17 191
92 17
244 92
42 244
...

user output
183 1
30 2
64 3
56 4
247 5
...

Test 14

Verdict: ACCEPTED

input
yjbtyzkxhxgdcdayckrjojgxxskcfr...

correct output
234 1
170 234
23 170
74 23
236 74
...

user output
231 1
91 2
11 3
185 4
232 5
...

Test 15

Verdict: ACCEPTED

input
zlptxwhrxhmqmdtmxodntqxjsfeuqo...

correct output
478 1
378 478
444 378
309 444
23 309
...

user output
474 1
210 2
293 3
369 4
445 5
...

Test 16

Verdict: ACCEPTED

input
xtgjxqjyngjnrchesofkxhoeqfytej...

correct output
890 1
66 890
347 66
322 347
350 322
...

user output
875 1
733 2
226 3
321 4
876 5
...

Test 17

Verdict: ACCEPTED

input
yrgvguilduwtvehgkwmgwhcuzeudum...

correct output
732 1
375 732
124 375
607 124
144 607
...

user output
729 1
521 2
177 3
638 4
178 5
...

Test 18

Verdict: ACCEPTED

input
sbexapmynutjwvztgjblkiulcklegx...

correct output
353 1
481 353
62 481
349 62
221 349
...

user output
353 1
18 2
93 3
460 4
302 6
...

Test 19

Verdict: ACCEPTED

input
tsovgecdemwidbcbyrtajkbouiwhhe...

correct output
631 1
516 631
308 516
554 308
508 554
...

user output
598 1
565 2
442 3
663 4
183 5
...