思路:
贪心。
实现:
1 #include<bits/stdc++.h> 2 using namespace std; 3 void work(string&s,int k){ 4 int n=s.length(); 5 for(int i=0;i<k;i++){ 6 for(int j=i+k;j<n;j+=k){ 7 s[j]=s[j-k]; 8 } 9 } 10 } 11 int main(){ 12 int n,k; 13 while(cin>>n>>k){ 14 string s;cin>>s; 15 string t=s; 16 work(t,k); 17 if(t>=s){cout<<n<<'\n'<<t<<endl;continue;} 18 for(int i=k-1;i>=0;i--){ 19 if(t[i]!='9'){ 20 t[i]++; 21 int j=i+1; 22 while(j<k and t[j]=='9') t[j++]='0'; 23 break; 24 } 25 } 26 work(t,k); 27 cout<<n<<endl; 28 cout<<t<<endl; 29 } 30 return 0; 31 }