CodeForces #201

ABC3完+3hackで23位でした。
2182 -> 2274
初Redです。やったー、嬉しい。

・Bオープン
・解法自明だけど実装明らかに重い
・飛ばしてA
・まあ、難易度はいつも通りくらい
・A pretest passed
・B実装
・しょうもないバグでデバッグをさせられる
・さすがに睡眠時間足りなすぎて頭が寝てる
・B WA
・よく問題を見たら復元までしないといけないらしい
・だるすぎる・・・
・B pretest passed
・C読む
・「a -= a%x」ではなく「a = a%x」だと思っていて解ける気がしなくなる
・D軽く読む
・friend standingsみたら全員自分より上位で絶望する
・誤読に気づく
・単調関数っぽい
・N log N の臭いがする
・log2つつけるとつらそうで、imos法っぽいことをすれば良さそう
・C pretest passed
・残り30分で10人しか通してないDはさすがに無理そう
・hack始める
・Bのfailure linkみたいなのを考慮してないのを3つ落とす
・終了
・pretestが弱かったらしくかなり順位が上がって嬉しい
・C落ち過ぎでは・・・(部屋内で自分だけだった)

Cだけ載せとこう。

int n, a, b;
int x[MX];
int d[MX*10];

int main(){
  cin >> n;
  rep(i,n) cin >> x[i];
  sort(x,x+n);
  n = unique(x,x+n)-x;
  cin >> a >> b;
  
  rep(i,MX*10) d[i] = i-1;
  rep(i,n) for(int j = (b+x[i]-1)/x[i]*x[i]; j <= a; j+=x[i]) mins(d[min(j+x[i]-b-1,a-b)],j-b);
  
  drep(i,a-b) mins(d[i],d[i+1]);
  
  int ans = 0; a -= b;
  while(a > 0){
    a = d[a];
    ans++;
  }
  
  cout << ans << endl;
  
  return 0;
}