CSES - E4590 2018 5 - Results
Submission details
Task:Rotations
Sender:natalia
Submission time:2018-10-20 00:18:20 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.16 sdetails
#2ACCEPTED0.11 sdetails
#3ACCEPTED0.04 sdetails
#4ACCEPTED0.03 sdetails
#5--details
#6ACCEPTED0.36 sdetails
#7ACCEPTED0.11 sdetails
#8UNKNOWN--details
#9UNKNOWN--details
#10UNKNOWN--details
#11UNKNOWN--details
#12UNKNOWN--details

Code

#include <stdlib.h>
#include <iostream>
#include <string>
#include <list>
#include <iterator>

int main(){
	std::string str;
	std::cin >> str;

	unsigned int length = str.length();
	unsigned int result = 0;
	std::list<unsigned int> indices;

	for(unsigned int i = 0; i < length; i++){
		indices.push_back(i);
	}

	for(unsigned int i = 0; i < length; i++){
		unsigned int old_length = indices.size();
		std::list<unsigned int> new_indices;

		char min = str[*indices.begin() + i];
		
		for (std::list<unsigned int>::iterator it = indices.begin(); it != indices.end(); ++it){
			if(str[(*it + i) % length] < min){
				min = str[(*it + i) % length];
			}
		}
		
    	for (std::list<unsigned int>::iterator it = indices.begin(); it != indices.end(); ++it){
			if(str[(*it + i) % length] == min){
				new_indices.push_back(*it);
			}
		}

    	if(new_indices.size() == old_length){
    		result = *new_indices.begin();
    		break;
    	}

		if(new_indices.size() == 1){
			result = *new_indices.begin();
			break;
		}

		indices = new_indices;
	}


	std::cout << str.substr(result) << str.substr(0, result) << "\n";
	
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

Test 2

Verdict: ACCEPTED

input
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

user output
abbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

Test 3

Verdict: ACCEPTED

input
jibanqfglkmsywdlqjquxxnqeyhbyu...

correct output
aaadptqmkuqxnvmojzhghqtfztbwsj...

user output
aaadptqmkuqxnvmojzhghqtfztbwsj...

Test 4

Verdict: ACCEPTED

input
muykjgvsstkgydmumitbgvsbtgyvmv...

correct output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

user output
aaaeaeipiqglrtbzelgrqmrxqbnjke...

Test 5

Verdict:

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
(empty)

Test 6

Verdict: ACCEPTED

input
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

correct output
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

user output
aaaaaaaaabaaaaaaaaabaaaaaaaaab...

Test 7

Verdict: ACCEPTED

input
jtcbpjizbiauauipwsdteaisynwesj...

correct output
aisynwesjvtvgghnbqyqprwpfqayzl...

user output
aisynwesjvtvgghnbqyqprwpfqayzl...

Test 8

Verdict: UNKNOWN

input
a

correct output
a

user output
(not available)

Test 9

Verdict: UNKNOWN

input
ab

correct output
ab

user output
(not available)

Test 10

Verdict: UNKNOWN

input
ba

correct output
ab

user output
(not available)

Test 11

Verdict: UNKNOWN

input
home

correct output
ehom

user output
(not available)

Test 12

Verdict: UNKNOWN

input
baaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

user output
(not available)