Hatena::Grouptopcoder

灰コーダーのゆとり日記

 | 

2012-07-11

Codeforces Round 129 Div.2

02:59

システムテストが終わったので編集します。

Codeforces Round 129 Div.2 ox-o- +0/-0 1576pt 331位

Rating 1280→1411(+131)

A:

http://codeforces.com/contest/205/problem/A

各町への最短距離を与えるので、何番目のデータが一番早く行けるか答えろ。

複数の最短距離がある場合は移動しない。

データをぶち込んで昇順にsortして0番目と1番目の比較したら終わりました…。

逆に不安になった問題;w;

B:

http://codeforces.com/contest/205/problem/B

配列が与えられて、中身が昇順になるようにしたい。

足りない部分には1を足すことができ、1回で好きな隣り合った配列の中身を+1出来る

最低何回足せば昇順になるようになるか

ちょっと日本語がおかしいので問題文読んでください。

尺取り法チックで書いたんだけどWAでした。

テストケースを見てみたい。

C:

問題文見てやばそうだったからやめたェ

D:

http://codeforces.com/contest/205/problem/D

Div1.Bと同じ問題なのでDiv1の方の解答例を見るといいと思います!

とりあえずカードの色数が多すぎて配列じゃ保存できないのでmap使って出たカード保存。

俺はmap<int,int> m1(表カード),map<int,int> m2(裏カード)みたいな感じで分けましたが、map<int,pair<int,int>>でやってるのみて頭いいなぁと思いました

表と裏が同じなら表のみに、違うなら裏もデータに追加します。

後は出た色の数値をsetに入れておいてm1+m2がnの半分以上かどうかを調べて、半分以上ならvectorにn-m1を入れます。頭いい人はmax(0,n-m1)でやってました!

その後、vectorの中身が0なら作れないので-1,vectorの中身が1個以上あるならソートして0番目の要素の値を出力すればおkです。0以下なら0にしてあげて出力です。

E:

開いてすらいなry


Dは皆似たようなコードだなぁと思ったら結構落ちてたりするのでdiv1組の方の解説を見た方がいいと思われます!

とりあえずレーティングめっちゃ上がって大満足でした!Bをなんとかして通したかった…;

 |