Codeforces Round #350 (Div. 2) F. Restore a Number
問題文が短いにもかかわらず題意を汲み取るのに苦戦した。
http://codeforces.com/contest/670/problem/F
問題
ある整数 n があり、n に n の桁数をくっつけてシャッフルした文字列 Sと n の一部分 T が与えられる。ありうる n の最小値を求めよ。
解法
n の桁数は一意に定まる。
T=56xxxx だったら 1001122334455 + 56xxxx + 66778899 のようにするのが最小。
T=54xxxx だったら 10011223344 + 54xxxx + 5566778899 のようにするのが最小。
T=0xxxxx だったら余っている 0 以外の数字のなかで最も小さいものを先頭に置くのが最小。
Codeforces Round #350 (Div. 2) F. Restore a Numbe ...
本番中は n の桁数が一意に定まることに気付けなくて、強実装をして挙句の果てにバグっていて systest で落ちた。