ディスカバリーチャンネルコンテスト2020 予選D - Digit Sum Replace
結局注目する点は、隣り合う2数を足したときに、繰り上がって桁数が変化しない時は、全体の数の和が9減るということのみ。桁数が減る時は繰り上がりがないため、全体の和は変化しない。
なので求める回数は、全体の和を S, 桁数を T とすると、T-1 + (S-1)//9 となる。
回数を求めることを、総和を減らせる回数と言い換えるところまでは良かったけど、考察を詰めれてなかったので、T-1+s//10 とかだと思ってしまった。
import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines m = int(readline()) ans = 0 chk = -1 for i in range(m): d,c = map(int,readline().split()) ans += c chk += d*c if chk > 8: ans += chk//9 chk %= 9 print(ans-1)