Submission #637830
Source Code Expand
#include <bits/stdc++.h> using namespace std; int n,t; int sa[300010],rnk[300010],tmp[300010]; bool compare_sa(int i,int j){ if(rnk[i]!=rnk[j]) return rnk[i]<rnk[j]; int ri=i+t<=n?rnk[i+t]:-1; int rj=j+t<=n?rnk[j+t]:-1; return ri<rj; } int main(){ string s; cin>>s; int k; cin>>k; n=s.size(); int acnt=0; for(int i=0;i<n;i++){ if(s[i]=='a') acnt++; } if(acnt+k>=n){ int left=n-k; for(int i=0;i<left;i++) cout<<"a"; cout<<endl; return 0; } for(int i=0;i<=n;i++){ sa[i]=i; rnk[i]=i<n?(s[i]-'a'):-1; } for(t=1;t<=n;t*=2){ sort(sa,sa+n+1,compare_sa); tmp[sa[0]]=0; for(int i=1;i<=n;i++){ tmp[sa[i]]=tmp[sa[i-1]]+(compare_sa(sa[i-1],sa[i])?1:0); } for(int i=0;i<=n;i++) rnk[i]=tmp[i]; } int left=0,right=0,cnt=0; acnt=0; for(int i=0;i<n;i++){ if(s[i]=='a'){ left=right=i+1; acnt++; } else cnt++; if(k<=cnt){ right=i+1; break; } } int sml=left; for(int i=left;i<=right;i++){ if(rnk[sml]>rnk[i]) sml=i; } for(int i=0;i<acnt+k;i++) cout<<"a"; cout<<s.substr(sml)<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - アメージングな文字列は、きみが作る! |
User | fiord |
Language | C++ (GCC 4.9.2) |
Score | 100 |
Code Size | 1108 Byte |
Status | AC |
Exec Time | 762 ms |
Memory | 5052 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | All | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 10 / 10 | 10 / 10 | 20 / 20 | 60 / 60 | ||||||||||
Status |
|
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
Subtask1 | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 20_hand_01.txt, 20_hand_02.txt, 20_hand_03.txt, 20_hand_04.txt, 20_hand_05.txt |
Subtask2 | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 20_hand_01.txt, 20_hand_02.txt, 20_hand_03.txt, 20_hand_04.txt, 20_hand_05.txt, 40_rand_01.txt, 40_rand_02.txt, 40_rand_03.txt, 40_rand_04.txt, 40_rand_05.txt, 40_rand_06.txt, 40_rand_07.txt, 40_rand_08.txt, 40_rand_09.txt, 40_rand_10.txt, 50_hand_01.txt, 50_hand_02.txt, 50_hand_03.txt, 50_hand_04.txt, 50_hand_05.txt |
Subtask3 | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 20_hand_01.txt, 20_hand_02.txt, 20_hand_03.txt, 20_hand_04.txt, 20_hand_05.txt, 40_rand_01.txt, 40_rand_02.txt, 40_rand_03.txt, 40_rand_04.txt, 40_rand_05.txt, 40_rand_06.txt, 40_rand_07.txt, 40_rand_08.txt, 40_rand_09.txt, 40_rand_10.txt, 50_hand_01.txt, 50_hand_02.txt, 50_hand_03.txt, 50_hand_04.txt, 50_hand_05.txt, 60_rand_01.txt, 60_rand_02.txt, 60_rand_03.txt, 60_rand_04.txt, 60_rand_05.txt, 60_rand_06.txt, 60_rand_07.txt, 60_rand_08.txt, 70_hand_01.txt, 70_hand_02.txt, 70_hand_03.txt, 70_hand_04.txt, 70_hand_05.txt, 70_hand_06.txt, 70_hand_07.txt |
All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 20_hand_01.txt, 20_hand_02.txt, 20_hand_03.txt, 20_hand_04.txt, 20_hand_05.txt, 40_rand_01.txt, 40_rand_02.txt, 40_rand_03.txt, 40_rand_04.txt, 40_rand_05.txt, 40_rand_06.txt, 40_rand_07.txt, 40_rand_08.txt, 40_rand_09.txt, 40_rand_10.txt, 50_hand_01.txt, 50_hand_02.txt, 50_hand_03.txt, 50_hand_04.txt, 50_hand_05.txt, 60_rand_01.txt, 60_rand_02.txt, 60_rand_03.txt, 60_rand_04.txt, 60_rand_05.txt, 60_rand_06.txt, 60_rand_07.txt, 60_rand_08.txt, 70_hand_01.txt, 70_hand_02.txt, 70_hand_03.txt, 70_hand_04.txt, 70_hand_05.txt, 70_hand_06.txt, 70_hand_07.txt, 80_rand_01.txt, 80_rand_02.txt, 80_rand_03.txt, 80_rand_04.txt, 80_rand_05.txt, 80_rand_06.txt, 80_rand_07.txt, 80_rand_08.txt, 80_rand_09.txt, 80_rand_10.txt, 90_hand_01.txt, 90_hand_02.txt, 90_hand_03.txt, 90_hand_04.txt, 90_hand_05.txt, 90_hand_06.txt, 90_hand_07.txt, 90_hand_08.txt, 90_hand_09.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_example_01.txt | AC | 27 ms | 900 KB |
00_example_02.txt | AC | 26 ms | 928 KB |
00_example_03.txt | AC | 25 ms | 920 KB |
10_rand_01.txt | AC | 25 ms | 928 KB |
10_rand_02.txt | AC | 26 ms | 924 KB |
10_rand_03.txt | AC | 26 ms | 928 KB |
10_rand_04.txt | AC | 26 ms | 932 KB |
10_rand_05.txt | AC | 26 ms | 932 KB |
20_hand_01.txt | AC | 27 ms | 924 KB |
20_hand_02.txt | AC | 27 ms | 924 KB |
20_hand_03.txt | AC | 27 ms | 924 KB |
20_hand_04.txt | AC | 27 ms | 916 KB |
20_hand_05.txt | AC | 28 ms | 800 KB |
40_rand_01.txt | AC | 27 ms | 800 KB |
40_rand_02.txt | AC | 27 ms | 920 KB |
40_rand_03.txt | AC | 30 ms | 924 KB |
40_rand_04.txt | AC | 26 ms | 796 KB |
40_rand_05.txt | AC | 27 ms | 916 KB |
40_rand_06.txt | AC | 26 ms | 924 KB |
40_rand_07.txt | AC | 26 ms | 920 KB |
40_rand_08.txt | AC | 27 ms | 920 KB |
40_rand_09.txt | AC | 27 ms | 920 KB |
40_rand_10.txt | AC | 27 ms | 916 KB |
50_hand_01.txt | AC | 25 ms | 920 KB |
50_hand_02.txt | AC | 25 ms | 920 KB |
50_hand_03.txt | AC | 27 ms | 924 KB |
50_hand_04.txt | AC | 26 ms | 916 KB |
50_hand_05.txt | AC | 25 ms | 916 KB |
60_rand_01.txt | AC | 28 ms | 916 KB |
60_rand_02.txt | AC | 26 ms | 912 KB |
60_rand_03.txt | AC | 27 ms | 916 KB |
60_rand_04.txt | AC | 27 ms | 920 KB |
60_rand_05.txt | AC | 28 ms | 796 KB |
60_rand_06.txt | AC | 27 ms | 920 KB |
60_rand_07.txt | AC | 27 ms | 920 KB |
60_rand_08.txt | AC | 27 ms | 916 KB |
70_hand_01.txt | AC | 25 ms | 808 KB |
70_hand_02.txt | AC | 27 ms | 920 KB |
70_hand_03.txt | AC | 28 ms | 916 KB |
70_hand_04.txt | AC | 26 ms | 920 KB |
70_hand_05.txt | AC | 27 ms | 924 KB |
70_hand_06.txt | AC | 28 ms | 920 KB |
70_hand_07.txt | AC | 26 ms | 924 KB |
80_rand_01.txt | AC | 369 ms | 2872 KB |
80_rand_02.txt | AC | 287 ms | 2616 KB |
80_rand_03.txt | AC | 617 ms | 4152 KB |
80_rand_04.txt | AC | 395 ms | 3124 KB |
80_rand_05.txt | AC | 491 ms | 3616 KB |
80_rand_06.txt | AC | 497 ms | 3612 KB |
80_rand_07.txt | AC | 551 ms | 4028 KB |
80_rand_08.txt | AC | 487 ms | 3488 KB |
80_rand_09.txt | AC | 559 ms | 3880 KB |
80_rand_10.txt | AC | 286 ms | 2588 KB |
90_hand_01.txt | AC | 56 ms | 1464 KB |
90_hand_02.txt | AC | 48 ms | 1464 KB |
90_hand_03.txt | AC | 715 ms | 5052 KB |
90_hand_04.txt | AC | 716 ms | 4788 KB |
90_hand_05.txt | AC | 762 ms | 5048 KB |
90_hand_06.txt | AC | 716 ms | 4796 KB |
90_hand_07.txt | AC | 706 ms | 4796 KB |
90_hand_08.txt | AC | 709 ms | 4768 KB |
90_hand_09.txt | AC | 706 ms | 4796 KB |