原题链接:Codeforces Round #609 (Div. 1) A. Long Beautiful Integer
/**
* author: tourist
* created: 21.12.2019 14:05:03
**/
#include <bits/stdc++.h>
using namespace std;
//没必要动大的位数的时候不动,实在没办法再进位
int main() {
int n, k;
cin >> n >> k;
string s;
cin >> s;
cout << n << '\n';//答案的长度肯定和之前的一样
string t = s.substr(0, k); //选取t为从开头开始的k长度作为子串
for (int i = k; i < n; i++) {
t += t[i - k];//从第k位开始,每一位和它-k之后相等
}
if (t >= s) {
cout << t << '\n'; //如果这个数比s大,则输出,程序结束
} else {
for (int i = k - 1; i >= 0; i--) {//如果不是酱紫,我们要把k-1位变大
if (t[i] == '9') {
t[i] = '0';
} else {
++t[i];
break;
}
}
for (int i = k; i < n; i++) {//再调整为美丽数
t[i] = t[i - k];
}
cout << t << '\n';
}
return 0;
}