Ranking (as of 2015-08-19): 71 out of 636
Language: C++
/*
UVa 1584 - Circular Sequence
To build using Visual Studio 2012:
cl -EHsc -O2 UVa_1584_Circular_Sequence.cpp
*/
#include <cstdio>
#include <cstring>
int compare_string(const char* s, int length, int i, int j)
{
for (int k = length; k; k--, i = (i + 1) % length, j = (j + 1) % length) {
if (s[i] > s[j])
return 1;
else if (s[i] < s[j])
return -1;
}
return 0;
}
int main()
{
int T;
scanf("%d", &T);
while (T--) {
const int nr_chars_max = 100;
char s[nr_chars_max + 1];
scanf("%s", s);
int min_i = 0, length = strlen(s);
for (int i = 1; i < length; i++)
if (compare_string(s, length, i, min_i) < 0)
min_i = i;
printf("%s", &s[min_i]);
if (min_i) {
s[min_i] = '\0';
printf("%s", s);
}
/*
for (int k = length; k; k--, min_i = (min_i + 1) % length)
putchar(s[min_i]);
*/
putchar('\n');
}
return 0;
}
No comments:
Post a Comment