A. k-String
#include <iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
int k,i,j,kk,tt;
char a[1002];
int b[26];
int flag;
while(~scanf("%d",&k))
{flag=0;
scanf("%s",&a);
for(i=0;i<26;i++)
{
b[i]=0;
}
for(i=0;a[i]!='\0';i++)
{
b[a[i]-'a']++;
}
for(i=0;i<26;i++)
{
if(b[i]%k!=0)
{
flag=1;
printf("-1\n");
break;
}
}
if(flag==0)
{
for(tt=0;tt<k;tt++)
{
for(i=0;i<26;i++)
{
j=b[i]/k;
for(kk=0;kk<j;kk++)
{
printf("%c",'a'+i);
}
}
}
printf("\n");
}
}
return 0;
}
B. Special Offer! Super Price 999 Bourles!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int main() {
ll p , d , i , base[20];
base[0] = 1;
for(i = 0 ; i < 18 ; i ++)
base[i+1] = base[i]*10;
while(cin>>p>>d) {
ll ans = p , tmp = p , k = 0;
while(p - ans <= d) {
k ++;
if(tmp < 10) break;
if(tmp%10==9) {
tmp /= 10;
continue;
}
tmp /= 10;
tmp --;
if(p - (tmp*base[k] + base[k] - 1) <= d)
ans = tmp*base[k] + base[k] - 1;
}
cout<<ans<<endl;
}
}
C. Color Stripe
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
char s[500010];
int main() {
int n , k , ans , i , j , a , b , c;
while(~scanf("%d%d",&n,&k)) {
scanf("%s",s);
if(k == 2) {
a = b = c = 0;
for(i = 0 ; i < n ; i ++) {
if((i%2==0 && s[i]=='B')||(i%2==1&& s[i]=='A')) { a++;}
else if((i%2==0 && s[i]=='A')||(i%2==1 && s[i]=='B'))b++;
}
c = a < b ? a : b;
cout<<min(a , b)<<endl;
for(i = 0 ; i < n ; i ++) {
if(c == a) {
printf("%c",!(i&1)?'A':'B');
} else {
printf("%c",(i&1)?'A':'B');
}
}
printf("\n");
} else {
int ans = 0 , l = 1;
for(i = 1 ; i < n ; i ++) {
if(s[i-1]==s[i]) l++;
else {
ans += l/2;
l = 1;
}
}
ans += (l/2);
printf("%d\n",ans);
printf("%c",s[0]);
for(i = 1 ; i < n ; i ++) {
if(s[i-1]!=s[i]) printf("%c",s[i]);
else {
for(j = 0 ; j < k ; j ++) {
if(s[i]!='A'+j && s[i+1]!='A'+j) {
printf("%c",'A'+j);
s[i] = 'A' + j;
break;
}
}
}
}
printf("\n");
}
}
}