Codeforces Beta Round #11
はい。
A. Increasing Sequence
constructive algorithms,implementation,math
ざっくりと大意
・右に行くに従って増加するべき数列が与えられるらしい。 ・増加してない場合はdを行い、最小で何回か。
方針のようなもの
・たぶんコレ前に見た切り上げ除算を応用すればだと思う。 http://qiita.com/clarinet758/items/d591fa519764aeecb6bf
#!/usr/bin/env python # -*- coding: UTF-8 -*- import sys, io import re, math ans=0 (n,d)=map(int, raw_input().split()) b=map(int, raw_input().split()) for i in range(1,n): if b[i-1]>=b[i]: r=((b[i-1]-b[i])+d)/d b[i]+=d*r ans+=r print ans
一回目は((b[i-1]-b[i])+d-1)/d にしてたりしてダメだった。 考えてみれば手前の数と等しい場合に加算を行わくなってしまう罠が。。。