AtCoder Beginner Contest ABC166 参加記
5完で水パフォでした。ムーブがダメダメすぎましたし、Eは無限人が瞬殺していたので解けたことで喜ぶこともできないみたいです。Dは問題文が優しくないなあと思いつつも、よく読まない人が悪いということになるので・・・
A
はい
B
お菓子持ってる人を管理していくだけです。1-indexedになっているので注意。
C
誤読して難しい問題を解いていました。また、辺の数が少ないので全ての頂点から全てのへんを見ても間に合いますね。本番は無駄な実装をしてしまったのが反省です。
D
問題文をよく読まず、解がない場合についても考えて無駄に時間を浪費しました。
なので、はくらいまで探索すれば十分です。
E
条件を数式に落としてみると、仮定して
移項して
よって、indexを進めながら自分より後ろの分布をmapで管理してで解けます。
int main() { int N; cin >> N; vector<ll> A(N); rep(i,N)cin >> A[i]; map<ll, int> map; ll ans = 0; rep(i,N){ ans += map[(i+1)-A[i]]; map[A[i]+(i+1)]++; } cout << ans << endl; }
F
DPをしようとして書いていたら時間切れしました。 貪欲でいいようですがまだ確認できていません。