#include <stdio.h>
#include <string.h>
/*
My algorithm read digits into char array
keep as chars
add 1 to far right digit and carry left as needed
for each pair of digit starting at outside pair and working toward
most inside pair or one,
if right pair digit is equal to left digit, bo to next inner pair
if left pair digit is larger than right, then replace right pair digit with left
if left pair digit is smaller than right, then cary one to digit just to left of right digit and then
copy left digit to right digit
*/
#define BSIZE 1000001
char add_1(char c) {
c++;
if(c > '9') return '0';
return c;
}
void carry(char a[], int i) { // carry into a[i]
while((a[i--] = add_1(a[i])) == '0');
}
void do_case(char a[], int n) {
int c9s = 0;
for(int i = 0; i < n; i++) {
if(a[i] != '9') break;
c9s++;;
}
if(c9s == n) { // special case of all 9's
for(int i = 0; i < n-1; i++) {
}
return;
}
int left = 0;
int right = n-1;
carry(a, right); // add one to right side
while(right-left > 0) {
if(a[right] > a[left]) {
carry(a, right - 1);
}
a[right] = a[left];
right--;
left++;
}
char *p = a;
while(*p == '0') p++; // removes leading zeros
}
int main() {
int cases;
char a[BSIZE];
for(int c = 1; c <= cases; c++) {
do_case(a, n);
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KLyoKIE15IGFsZ29yaXRobSByZWFkIGRpZ2l0cyBpbnRvIGNoYXIgYXJyYXkKIGtlZXAgYXMgY2hhcnMKIGFkZCAxIHRvIGZhciByaWdodCBkaWdpdCBhbmQgY2FycnkgbGVmdCBhcyBuZWVkZWQKIGZvciBlYWNoIHBhaXIgb2YgZGlnaXQgc3RhcnRpbmcgYXQgb3V0c2lkZSBwYWlyIGFuZCB3b3JraW5nIHRvd2FyZAogbW9zdCBpbnNpZGUgcGFpciBvciBvbmUsCiAgICBpZiByaWdodCBwYWlyIGRpZ2l0IGlzIGVxdWFsIHRvIGxlZnQgZGlnaXQsIGJvIHRvIG5leHQgaW5uZXIgcGFpcgogICAgaWYgbGVmdCBwYWlyIGRpZ2l0IGlzIGxhcmdlciB0aGFuIHJpZ2h0LCB0aGVuIHJlcGxhY2UgcmlnaHQgcGFpciBkaWdpdCB3aXRoIGxlZnQKICAgIGlmIGxlZnQgcGFpciBkaWdpdCBpcyBzbWFsbGVyIHRoYW4gcmlnaHQsIHRoZW4gY2FyeSBvbmUgdG8gZGlnaXQganVzdCB0byBsZWZ0IG9mIHJpZ2h0IGRpZ2l0IGFuZCB0aGVuCiAgICAgICAgY29weSBsZWZ0IGRpZ2l0IHRvIHJpZ2h0IGRpZ2l0CgogKi8KI2RlZmluZSBCU0laRSAxMDAwMDAxCgpjaGFyIGFkZF8xKGNoYXIgYykgewogICAgYysrOwogICAgaWYoYyA+ICc5JykgcmV0dXJuICcwJzsKICAgIHJldHVybiBjOwp9Cgp2b2lkIGNhcnJ5KGNoYXIgYVtdLCBpbnQgaSkgeyAvLyBjYXJyeSBpbnRvIGFbaV0KICAgIHdoaWxlKChhW2ktLV0gPSBhZGRfMShhW2ldKSkgPT0gJzAnKTsKfQoKdm9pZCBkb19jYXNlKGNoYXIgYVtdLCBpbnQgbikgewogICAgaW50IGM5cyA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWYoYVtpXSAhPSAnOScpIGJyZWFrOwogICAgICAgIGM5cysrOzsKICAgIH0KICAgIGlmKGM5cyA9PSBuKSB7IC8vIHNwZWNpYWwgY2FzZSBvZiBhbGwgOSdzCiAgICAgICAgcHJpbnRmKCIxIik7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG4tMTsgaSsrKSB7CiAgICAgICAgICAgIHByaW50ZigiMCIpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIjFcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBsZWZ0ID0gMDsKICAgIGludCByaWdodCA9IG4tMTsKICAgIGNhcnJ5KGEsIHJpZ2h0KTsgLy8gYWRkIG9uZSB0byByaWdodCBzaWRlCgogICAgd2hpbGUocmlnaHQtbGVmdCA+IDApIHsKICAgICAgICBpZihhW3JpZ2h0XSA+IGFbbGVmdF0pIHsKICAgICAgICAgICAgY2FycnkoYSwgcmlnaHQgLSAxKTsKICAgICAgICB9CiAgICAgICAgYVtyaWdodF0gPSBhW2xlZnRdOwogICAgICAgIHJpZ2h0LS07CiAgICAgICAgbGVmdCsrOwogICAgfQogICAgY2hhciAqcCA9IGE7CiAgICB3aGlsZSgqcCA9PSAnMCcpIHArKzsgLy8gcmVtb3ZlcyBsZWFkaW5nIHplcm9zCiAgICBwcmludGYoIiVzXG4iLCBwKTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgY2FzZXM7CiAgICBjaGFyIGFbQlNJWkVdOwoKICAgIHNjYW5mKCIlZCIsICZjYXNlcyk7CiAgICBmb3IoaW50IGMgPSAxOyBjIDw9IGNhc2VzOyBjKyspIHsKICAgICAgICBzY2FuZigiJXMiLCBhKTsKICAgICAgICBpbnQgbiA9IChpbnQpc3RybGVuKGEpOwogICAgICAgIGRvX2Nhc2UoYSwgbik7CiAgICB9Cn0KCg==