読者です 読者をやめる 読者になる 読者になる

Codeforces Round #262 (Div. 2)

はい。
http://codeforces.com/contest/460
A問題のみ提出でpre一発通過。そのままAC
レートは1193(+72) そろそろ緑に戻れるか・・・・?

A. Vasya and Socks

ざっくりと大意

最初には靴下がn足持っていて、靴下は毎日使い捨てる?
ママがm日ごとに靴下を1足補給する。ただし、夕方に次の日の分として
なので
n,mが 2 2 だと、2足で始まり、補給が2日ごとである
1日目 2->1  補給なし
2日目 1->0->1 夕方に補給されたので次の日の分がある
3日目 1->0  補給なし、そして次の日の分もなし
よって回答は 3

n,mが 9 3 だと、9足で始まり、補給が3日ごとである
1日目 9->8  補給なし
2日目 8->7  補給なし
3日目 7->6->7 補給あり
4日目 7->6
.
.
12日目 1->0->1
13日目 1->0
よって回答は 13

方針のようなもの

その通りに書く 補給や0足の判定のタイミングでWAに注意

n,m=map(int,raw_input().split())
chk=1
while 1:
    n-=1
    if n==0:
        print chk
        break
    chk+=1
    if chk%m==0:
        n+=1

system testで落ちてた = Hack成功できるチャンスだった(同室なら)
http://codeforces.com/contest/460/submission/7520521
http://codeforces.com/contest/460/submission/7519884
http://codeforces.com/contest/460/submission/7526482
http://codeforces.com/contest/460/submission/7521245
http://codeforces.com/contest/460/submission/7526776
言語も落ちてるケースもばらつきがあるが'/='を使ってて、靴下が0になってるかを見てないっぽいのは共通

B. Little Dima and Equation

ざっくりと大意

x = b * s(x)a + c が成立する x(0<x<109) xはいくつあるか、それを列挙
s(x)とは左辺xの全桁の総和の数 e.g. x=123 ならば s(x)=6 である
xの最大が999999999なのでs(x)の最大が81であることが定まる

方針のようなもの

b * s(x)a + cを1から81まで見てx=s(x)になったものだけがxが成立する解なのでリストに放り込む

a,b,c=map(int, raw_input().split())
l=[]
for i in xrange(1,82):
  chk=b*(i**a)+c
  q=list(str(chk))
  qa=0
  for j in range(len(q)):
    if q[j]=="-":
      pass
    elif j==1 and q[0]=="-":
      qa+=int(q[1])*(-1)
    else:
      qa+=int(q[j])
  if qa==i and 0<chk<1000000000:
    l.append(chk)

if len(l):
  print len(l)
  print " ".join(map(str ,l))
else:
  print 0

system testで落ちてた = Hack成功できるチャンスだった(同室なら)
http://codeforces.com/contest/460/submission/7525755
s(x)を90まで見てるっぽい 気づけば簡単に落とせるのかも
http://codeforces.com/contest/460/submission/7526601
オーバーフローかな?

解法に自信があればDiv.2のA,B問題でもHackはどんどん行くべきっぽい。周りもほぼHack不慣れなので稼げるチャンス。