Problem G: Decreasing String
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 133 Solved: 51
[ Submit][ Status][ Web Board]
Description
You need to find a string which has exactly K positions in it such that the character at that position comes alphabetically later than the character immediately after it. If there are many such strings, print the one which has the shortest length. If there is still a tie, print the string which comes the lexicographically earliest (would occur earlier in a dictionary).
Input
The first line contains the number of test cases T. Each test case contains an integer K (≤ 100).
Output
Output T lines, one for each test case, containing the required string. Use only lower-case letters a-z.
Sample Input
2
1
2
Sample Output
ba
cba
AC代码:
#include<iostream>
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
for(int i=n;i>=1;i--)
{
int m=i%25;
if(m==0)
printf("z");
else if(m==1)
printf("ba");
else
printf("%c",m+'a');
}
printf("\n");
}
return 0;
}
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
for(int i=n;i>=1;i--)
{
int m=i%25;
if(m==0)
printf("z");
else if(m==1)
printf("ba");
else
printf("%c",m+'a');
}
printf("\n");
}
return 0;
}