Hatena::Grouptopcoder

敗戦記

2011-03-31

TopCoder SRM 501 Div1

| 14:09

Div2落ちが見えてきました。

Easy

  • 前回と違ってそこそこすぐに問題文の意味を把握できましたが、scoreAの正負、scoreBの正負と絶対値の場合分けを書いているうちに複雑になり、頭が混乱してきました。
  • 仕方ないのでサンプルを見ると、scoreAは塊でしかつかわないように思えたので、方針を変更することにしました。
  • 最初にnA回足してnB回かけたもの、nA回足す前にnB回かけたもの、nBが正の場合に、nA回足した後、nB-1回掛けたものの中から最大値を返すようにしました。
  • そうしたらサンプルが全部あったので、良かったなどと思いながら提出。
  • 途中晩飯に・・・。

26分

Medium

  • 飯食って開く。数え上げるようなものには全くといっていいほど歯がたたない。
  • なんとなく考えてみるけれど動的計画法という言葉すら頭に浮かびませんでした。

Challenge

  • Mediumを再帰で書いている人がいたので、-1を40個つなげて投げたら-25しました。
    • ついでにようやくchallengeの入力の仕方が分かりました。
  • Easyが撃墜されました。
  • -25になって終わりました。

1469 -> 1238 (-231) 次回あたり緑になりそうでです。Medium読む前にEasyを落ち着いて考えるべきだと深く思いました。次回も同じようなことを思っていそうで怖いです。

2011-03-30

Codeforces Beta Round #65 (Div. 2)

| 11:40

サンプルが結構強かった回。

ROOM 71

A

  • 開く。読む。サンプルを見てだいたい把握。
  • 10以上なのかより多いのか一瞬迷いましたが、10より多いにして提出。
  • サンプルが強いようで10以上で分けるとはじかれるみたいですね。

4分

B

  • 開く。読む。
  • だいたい把握して適当に書くとプリテスト通らない。
  • 仕方ないので、頭の悪さを嘆きながら数式どおりにaiを設定していく。
  • 大分混乱して時間がかかったけれど通った。

29分

C

  • 意味はすぐに把握したけれど愚直解法で大丈夫なのか心配になる。
  • まぁ愚直解法でダメならTLE狙いに行けばいいかと思って、取り敢えず書く。
  • わりとすぐに書けたけれど、愚直じゃない解法が思いつかないか考えてしばらく提出せずにいました。
  • しばらく考えても分からないので提出。

58分

Hack

  • CでTLE狙いするためにランダム出力のジェネレーターを書く。
  • 自分の書いたコードでも最大ケースがほとんど一瞬で終わってしまう。
  • Hack諦める。

D

  • ひらいて、読んで、実装重いと思いました。
  • 取り敢えずやるしかないのでゴリゴリと書き続ける。
  • スペルミスと細かいミスで何度か弾かれたあとプリテスト通過。

1時間41分

あとは他の人のコードを読んでいる間に終了。

System test

  • ooox-
  • Dは二つの正方形の交差判定をちゃんと出来ていなくて落ちました。

2490点で全体140位でした。

最近の微妙っぷりから多少は脱却出来た気がします。

感想

  • Dはあまり通る気はしなかったのですが、それでももしかしたらとか考えていました。
  • それからBを通すのに結構時間がかかったのがわりと問題な気がします。

1527 -> 1596 (+69) 多少上がったので、いいほうなんじゃないかと。

上位者を見ていると、結構いい順位に入ってもそう簡単にはオレンジにはなれないようです。

SteffenSteffen2012/11/15 07:31Big help, big help. And superlative news of cuosre.

najkyjnnajkyjn2012/11/16 05:38jZDUce <a href="http://vcipsfflhbup.com/">vcipsfflhbup</a>

2011-03-28

ITRIX 11 OPC

| 11:55

SPOJで行われていたコンテストに参加しました。

5問あったのですが、2問解いたあと、3問目以降が分からずに寝ました。

せっかくなので書いたコードを貼り付けます。

A

  • ヒットアンドブローを文字列に拡張したような問題。
  • 書く。サーバーが非常に重くてなかなか提出できない。
  • やっとつながった。提出。

8分24秒

main(){
  int t;
  cin>>t;
  while(t--){
    string in;
    cin>>in;
    set<int> app;
    rep(i,in.size())app.insert(in[i]);
    int m;
    cin>>m;
    while(m--){
      string a;
      cin>>a;
      int g=0,b=0;
      rep(i,a.size()){
	if(app.count(a[i]))++g;
	if(a[i]==in[i])++b;
      }
      cout<<g<<' '<<b<<endl;
    }
  }
}

B

  • 0のみ、又は2,3,5,7のみからなる数字を小さい順に並べたときに、n番目に来る数を答える問題。
  • AOJにあったPC甲子園の過去問に似たような問題があったので、それを思い出しながら書く。
  • 微妙に数字の変換に戸惑いながら書き切る。
  • 0が来る場合があるかどうかは分からないのですが、一応0がきた場合は"0"を返すようにしてみました。

17分23秒

string luck(ll n){
  if(n==0)return "0";
  string ret;
  do{
    n--;
    ret+=n%4;
    n/=4;
  }while(n);
  rep(i,ret.size()){
    switch(ret[i]){
    case 0:ret[i]='2';break;
    case 1:ret[i]='3';break;
    case 2:ret[i]='5';break;
    case 3:ret[i]='7';break;
    }
  }
  reverse(ALL(ret));
  return ret;
}

main(){
  int t;
  cin>>t;
  while(t--){
    ll n;
    cin>>n;
    cout<<luck(n)<<endl;
  }
}

C

  • 超要約すると、m*m以下の正方行列から縦横にかぶらないようにm個の要素を選び出し、その和を最大化する。というような問題。
  • 愚直にやると15!とかになって終わらない。なんとなく幅優先とかを書いたりしましたが、無理でした。
  • 次に訪れる場所と訪れた場所を持ってdpするというようなことも考えましたが、訪れた場所とその次の状態をうまく生成する方法が分からずに、あきらめました。
  • あとで蟻本を見たら集合の順列の作り方が書いてあったので、練習で通しました。
ll dp[15][1<<15];
ll a[15][15],b[15][15],c[15][15];

main(){
  int t;
  cin>>t;
  while(t--){
    memset(dp,0,sizeof(dp));
    int m;
    cin>>m;
    rep(i,m)rep(j,m)cin>>a[i][j];
    rep(i,m)rep(j,m)cin>>b[i][j];
    rep(i,m)rep(j,m){
      cin>>c[i][j];
      c[i][j]*=min(a[i][j],b[i][j]);
    }

    ll ans=0;
    rep(i,m){
      dp[0][1<<i]=c[i][0];
      ans=max(ans,dp[0][1<<i]);
    }


    for(int i=1;i<m;i++){
      rep(j,m){
	int comb=(1<<i)-1;
	while(comb< (1<<m) ){
	  if(((comb>>j) &1)==0){
	    dp[i][comb|1<<j]=max(dp[i][comb|1<<j],dp[i-1][comb]+c[j][i]);
	    ans=max(dp[i][comb|1<<j],ans);
	  }
	  int x=comb&-comb,y=comb+x;
	  comb=((comb&~y)/x>>1)|y;
	}
      }
    }
    cout<<ans<<endl;
  }
}

2011-03-27

Codeforces Beta Round #64

| 13:24

レートの低下が止まらない・・・。

ROOM 10

A

  • 開く。
  • 読解に手間取るが、web辞書を使いながらなんとか読む。
  • 一番したのサンプルを見ると、一つ大きいサイズの箱には、もとの箱の左下半分を上と右に詰めて、大きい三角を詰め込めばいいと気づけたので、空白の数を数えると3倍ずつになることを確認し、0の場合に注意してsubmit
  • プリテスト通過

14分

B

  • 読む。どうもこれも意味が分からない。
  • 仕方ないので、一旦Aで0を忘れている人がいないかを探しに行きました。
    • 一人だけ落としてもどってきました。
    • 0で落ちるコードは殆ど刈り取られた後のようでした。
  • 取り敢えずメッセージを文で区切って、サイズがn以下なら答えを増やしていくとプレテスト5でWAる。
  • メッセージを出来るだけ少ない送信回数で詰め込むのかな?
    • サンプルの3を見ると前から詰め込んでいるよう。
    • 書く。なぜかスペースは数えないと勘違い。
    • 送る。プリテスト通過。

1時間2分

C

  • 読む。意味は分かったけれど全然考えが思いつかない。
  • 諦める。

D

  • 開く。幾何だったので無理です。

Hack

  • 仕方ないのでAとBのハックを狙うことに。
  • Aはもうすでに提出者がいなく、ミスっているような人は見つけられませんでした。
  • Bのコードを読むとスペースを数えている人がいたので、問題を確認しなおすと読み落としがありました。
  • 仕方ないので、また絶望的な気分になりながら読みにくいコードが多いBを読んでいく。
    • 文字数の数え方がおかしい人がいたので終了間際にハックをする。
    • 一回目ミスって、もう一度よく確認して再度送る。
      • Successful hacking attempt

150点獲得

System test

  • ox---
  • やはりBはアウト

感想

  • 結局624点で431位でした。
  • 1486 -> 1479 (-7) レーティングの低下が止まらないです。そろそろ底に到達して欲しいところです。

(追記)

  • 1486 -> 1527 (+41) レーティングの式が変更になったとかで上昇して青にまで戻れました。

2011-03-23

Codeforces Beta Round #63 (Div. 2)

| 14:02

酷い出来だったdiv2。

room 2

知っている人はいない部屋だった気がします。

A

  • 読む。各要素の和が0になれば良いので、足して判定しました。

4分

B

  • 読む。長いうえに、意味が把握できない。
  • 仕方ないので飛ばす。

C

  • 長い。飛ばす。

D

  • 読んだ。意味は分かった。
  • この前書いたゲーム木探索のコードを引っ張ってきて、多少書き換えて提出してみる。
  • Wrong Answer
    • y=xで反転出来るという条件を忘れていた。
    • 書き足す。
      • 一回しか反転できないというのを忘れていた。
      • ここらへんで、mapのキーがカオスになる。
    • なぜかサンプルが通らない。あきらめる。

E

  • 読んだ。セグメントツリーとか無理。
  • 仕方ないので愚直解法でハックを狙おうとして提出。

1時間16分

ここらへんで惨敗を覚悟する。

B

  • 何とか読み取ろうと頑張る。
  • やっと意味を把握。
  • 書けた。通せた。

1時間32分

Bを書き終わるくらいにEをハックされた。オワタ。

C

  • 取り敢えずCを読むが、文字列処理系かつ、なんか微妙に30分だと自分には厳しい感じで、なおかつ、問題文がしっかりと把握出来ていないので、ハックに回ろうとする。

Hack

  • 取り敢えずEはみんな頭いい解法をやっていて、残念な気持ちになった。
  • 微妙に落とせそうなのがあったのでジェネレータを書くが、invalid inputを2回くらい返され、修正しているうちに終了。

System test

  • ○○--×

結局 1130ポイントでdiv2内404位でした。泣きたい。

1646 -> 1486 (-160) 緑になりました。どうしようもないね。

2011-03-21

Unknown Language Round #2

| 11:21

前回のunkは参加出来なかったので初参加。

今回は「Io」なる言語でした。

7zの導入から始めるとか、なかなか大変でしたね。

あと、ひたすらに公式のリファレンスをさまよいまくってました。

せっかくなので、今回は書いたコードを貼り付けてみようかと思います。

A

  • 開く。読む。
  • 初めて使う言語で書くにしてはむずすぎだろうと思い、しばらくしてstandingを見て変更。

G

  • 開く。読む。
  • 割と苦戦しながら、なんとか書く。
  • カスタムテストで実行していたのですが、途中で面倒になってcmd起動してサクラエディタでやってました。Meadowbashからでもioの実行は出来たようなのでそちらを使えばよかったです。
  • 以下のようになりました。
n := File standardInput readLine asNumber
k :=1
j :=1
l :=k+j
while(n>0,
  n=n-1
  l=j
  j=j+k
  k=l
)
k println

29分

C

  • Gの次に正解者が多かったので、開く。
  • Gが書ければ、そんなに苦労せずに書ける。
  • 以下のようになりました。
x := File standardInput readLine asNumber
odd:=0
even:=0

i:=0
while(i<x,
  i=i+1
  if(x%i>0,continue)
  if(i%2==1,odd=odd+1)
  if(i%2==0,even=even+1)
)
if(odd==even,"yes" println)
if(odd!=even,"no" println)

35分

ここからが泥沼に。

I

  • 取り敢えず、次に正解者が多いこの問題へ。
  • 割り算が勝手に浮動小数になるので、Cの感覚でやれずにかなり苦戦してました。
  • 面倒くさくなってきたのでもう寝ようかとも思いましたが、リファレンスをさまよっているうちに、文字列から桁を抜き出すことにしました。
  • こんなん書いたら通りました。
x := File standardInput readLine asNumber

ok:=0
keta:=0
pos:=0
dig:=x

while(pos< ((dig asString) size),
  k:= ((dig asString) at(pos))-48
  pos=pos+1
  keta=keta+1
  if(x%k==0,ok=ok+1)
)

if(ok==keta)then("happier" println) elseif(ok>0)then("happy" println) else("upset" println)

2時間15分

H

  • これも文字列で処理することに。
  • 0だけのパターンではまって、それを修正してAccepted
x := File standardInput readLine asString

pos:=0
ok:=0
xs:=x size
if(x at(0)==45,"-" print)
l:=0

while(x at(l)==48 or x at(l)==45,l=l+1)
out:=0

while(pos< xs,
  if(l+pos>=xs,break)
  if((x at(xs-pos-1))!=48,ok=1)
  if(ok==1 and (x at(xs-pos-1))>45,(((x at(xs-pos-1))-48) print))
  if(ok==1 and (x at(xs-pos-1))>45,(out=1))
  pos=pos+1
)
if(out==0,0 print)

2時間35分

E

  • 開く。読む。なんとかリピート回数を数えようとしたけれど、試行錯誤しているあいだに終わりました。

結果的に4問解いて、91位でした。

wrongさんが2回連続で優勝していたようで、とてもすごかったです。ってか日本人がかなり強いように感じました。

そんなわけでなかなか大変な思いをして、苦楽入り交じったコンテストでしたが、結構楽しめました。そろそろ春休みも終りに近付いているので、出れなくなっていきそうな気がするのが残念です。ついでに次回出そうな言語を予想したいと思います。

適当にPL/Iで。

2011-03-20

TopCoder SRM 500 Div1

| 12:50

相変わらず眠い中の参加。

仮眠をしっかりと取っておくべきでした。

Room 41

ACRush、tozangezanさんと同じ部屋でした。

Easy

  • 開く。文が長い・・・。
  • 眠すぎて内容が全然頭に入ってこないのであきらめて寝ようかと思いましたが、そうなるとレートが恐ろしく下がるのではないだろうかと思い、気力で3度ほど読み返すとなんとなく内容がつかめてくる。
  • 投票され得る人をsetにつっこんで、愚直にシミュレーションを書く。
  • もし返り値が0でないなら、最初の投票で最大ポイントを獲得した人が等しく脱退の可能性を持つような気がしたので、そんな感じで書く。
  • サンプルが通ったので、残り時間が30分~40分ぐらいのところで提出。

Medium

  • 読みましたが、意味がよく把握できないまま終了しました。

Hack

  • 返り値で変な値を返そうとしていた人が居たので、ハックできるかと思ったのですが、サンプルが思い浮かばずに終了。

System test

  • ○--
  • 何とか通ったのでほっとしました。

1268 -> 1468 (+200) 大分上がりました。0点でも自分はレートが上昇しうる回だったようです。これでしばらくDiv1に残っていられそうです。

2011-03-19

Codeforces Beta Round #62

| 09:57

いろいろ疲れてたので、迷ったけれど取り敢えず参加しました。

多分疲れてようと、そうでなかろうと結果は変わってなかったと思われます。

A

  • 読んで、まず題意を勘違い。
    • f(x)=x%p1%p2%p3%p4としたときに、f(x)==xとなるxの個数を求めるものだと思って、即効で書く。
  • プリテスト通過。

4分

  • この時点で部屋の提出者が少なかったので、あれ?と思い直し、もう一度Aを読む。
  • 勘違いしていた。
  • next_permutationとかを使って書きなおし。
  • いろいろあって14分位に再提出。
  • その時は「勘違いしたままでもサンプル通る、意地が悪いな。」などと思っておりました。
  • 多分自分と同じように書いている人がいるだろうから、あとでハックしようとも考えながらBに。

B

  • 読んで、少し考えて、増加量と減少量の関係を使い二分探索書いて提出。

23分

A

->=7とすべきところを>7としていたので、またリサブミット。

25分

Hack

  • Aをハックしようと思いましたが、どうやっても最初の自分の解法で間違う入力が見つけられず、その時になってはじめて、再提出しなければよかったと思いましたが、後の祭りでした。

C

  • 仕方ないので読む。
  • フローっぽい。わからん。nが小さいから各辺に流す流量を全探索できるかとも思いましたが、6^15だと絶対に無理っぽいので、あきらめました。

D

  • 読む。意味が分からない。
  • 眠気が高まってきて、そのままあきらめて寝ました。

System test

  • ○○---
  • Bが不安でしたが、通ってよかったです。

1678 -> 1646 (-32)

青に下がりました。C以降が解けるかどうかでかなり変わってきそうに感じましたが、Aの再提出もかなり痛かったような気もします。

結局DIV2回に高見の見物で臨むことはできなくなりました。

2011-03-14

Manthan 2011

| 14:16

一応参加しました。

A

  • 読む。普通に分からないが一応書く。
  • 取り敢えずサンプルがあったのでサブミット。
  • プリテスト通過。

22分

B

  • 読む、意味の理解に手間取る。
  • 理解したけれど全然出来るきがしないので飛ばす。

C

  • 文字列処理だと思ったけれど、これも自分には全然無理な問題だったので飛ばしました。

D

  • ぱっとデータ量を見て、もしかしたらTLE狙いでハックが出来るかもしれないとか思いながらAのハックに行く。

E

  • 幾何っぽいので特に読まずにスルーでした。

Hack

  • このままだと全然ダメそうだったので、ハックを頑張ることに。
  • 取り敢えず左右との差が1以下しか作り出していなさそうなものにアタックしまくる。
  • 8勝6敗(+500)
  • 読みにくいコードおおし。イミフなところがあって、よくみるとコメントアウトしてあった時は、ガックシきました。

D

  • TLE狙いでハックいけるかと思ったので取り組み始める。
  • お互いに交差しているという条件を、どこかしらで交差してつながっているグループの最大の数と勘違いして、手間取る。
  • やっと意味を把握する。
  • いろいろと書いてみたけどプリテスト通過できない。→終了。

System test

  • Aが落ちた。

500点

1686 -> 1678 (-8) 少ししか下がりませんでした。良かった良かった。

2011-03-09

TopCoder SRM 499 Div1

| 12:44

眠い中何とか参加。

Easy

  • 読む。map<int,vector<int> >とか使ってノロノロと実装。
  • サンプルが通ったので提出。
  • 213ポイント。

Medium

  • 読む。最初意味の把握に手間取る。
  • 把握したが、全く何も思いつかない。
  • そのまま時間来て終了。

Challenge

  • Easyで変なことやっている人が居たので落とそうと思ったら、入力つくるのに手間取って先に落とされた。
  • Mediumはバシバシ落とされている人がいたけれど、ぜんぜん分からないのでお手上げ状態。

System Test

  • ○--
  • 無難といえば無難なのかもしれない。

感想。

  • Medium以上が全然解ける気がしないので、練習する必要があるのかもしれないと考え出しました。
  • 取り敢えずEasy解ければ、DIV1にへばりついていけそうなので、あせらずに行きたいところ。

1262 -> 1268 (+6) 微増・・・。

2011-03-08

Codeforces #61 (Div.2)

| 11:48

自分にしてはかなり良かった回。

DIV2 ROOM10

A

  • 開く。一瞬文字列を使うか迷う。
  • 取り敢えず、long long c;if(cin>>c)でBigIntegerを判別し、LLONG_MAXとかを使ったら書けた。

8分

B

  • 読む。かなり前に授業で扱ったhttp://poj.org/problem?id=2227をなんとなく思い出す。
  • n<=1000ということでTLEも心配なさそうなので、n^2で普通に書いて出す。

15分

C

  • 開く。構文解析だったので微妙に張り切る。
  • 何だかメール配達(http://codeforces.com/problemset/problem/56/C)のやつに似ているな、というようなことを思いながら書く。
  • どうも上手くいかなく、Dを解いている人のほうが多かったので一旦Dへ。

D

  • 読む。素数を小さい方からp1,p2,p3・・・としたときに、p1*p2,p2*p3,p3*p4,・・・って出力すれば、いいのかとか考える。
  • 書くとREになる。
    • 確保する配列のサイズが小さかった。
    • 訂正するとWA
  • もう一回問題文を見ると、全てのi,j(i≠j)についてgcd(ai,aj)≠1とか書いてあった。
    • どうしよう。
    • ai=p1*p2*p3*・・・*p(i-1)*p(i+1)*・・・*pnにしようと結論が固まる。
    • ついでにn=2の場合はだめじゃないかな、ということにも気づけた。
    • 書くとプリテスト通過。

63分

  • ちょっと待てよ。と思う。

68分

Hack

  • Dで多倍長とか、n=2とかの見落としがないかと思って一人開く。
    • 素数を全列挙してない人がいたので50を投げてみたけれど普通に失敗した。
    • あれ、多倍長使わなくても解けるのか?
  • 一旦Cへ。

C

  • 戻ってくる。
  • あまり考えがまとまらないながらもゴリゴリと書く。
  • プリテスト通過。

82分

Hack

  • Dで、同じ方針で多倍長使っていない人が居たので50投げて落とす。
  • Aで、-を考えていない人がいたので落とそうと思ったらInvalid inputとか言われる。
    • この時始めてAは正の数しか与えられないことに気づく。
    • 結構-を考慮している人が多かった。
  • Dで素数全列挙かつ、多倍長使ってないとか、n=2を考慮してない人とか探したけれどいないので、取り敢えずEをみようと思う。

E

  • 多倍長持ち言語に嫉妬しながら開く。
  • 何とか問題の意味を把握。
  • 残り30分弱だったので、TLE解法でハックを狙うか、真面目に考えてO(n^2)より小さい解法が思い浮かぶか天秤にかけた結果、TLEを狙うのが得策だろうという結論に。
  • 書く。
    • 反対周りの考慮忘れてた。
    • 書く。反対周りがバグっていて、若干焦りながら修正しつつサブミット。
  • プリテスト通過。

110分

Hack

  • Eを見るとn^2解法の人が居たので、ジェネレーターを書く。
    • 性格悪いな自分、と思いながら投げて三人落とす。
    • 終了直前に駆けこんできた人がいて助かりました。
  • Dでn=2を考慮していない人が居たので二人落とす。
  • 最終的に+550

System Test

  • ○○×○×。
  • Cは通るか微妙かと思いっていましたが、構文解析の解析位置の移動の仕方が間違っていたようで、やはり落ちました。
  • Eはハックするためだけに書いたようなものなので、まぁ、落ちます。

感想

  • 一応部屋一位で、DIV2 65位でした。青い人もいた中では健闘できたほうだと思います。

1477 -> 1686 (+209) 紫になれました。多分またDIV1回では落ちると思うので、しばらくはDIV2オンリーもratedで出られてしまう気がします。

2011-03-06

Codeforces Beta Round #60

| 12:15

ボロ負けでした。DIV2回では上がっても、DIV1の方も来る回になると下がってしまう傾向があるようです。ハリポタ回

A

  • 開く。読む。
  • 問題文が長いと思ったが、内容はすぐに把握できた。
  • いい解法が思いつかないので、実数を使って適当に書く。
  • プリテスト通過。

B

  • 読んでる途中でAがハックされたので、Aに戻る。

A

  • 何回か書きなおして送るが、ハックを通過できないので、またBに戻る。

B

  • だいたい分かった。
  • 貪欲に行けたようですが、全然思いつかないので深さ優先のコードを書く。
  • プリテスト通過。

C

  • 幾何だったので、Aに戻りました。

A

  • どの数字が0かとかで場合分けしてごちゃごちゃになりながらも書きなおしたら、取り敢えずプリテスト通過しました。

B

  • BがTLE狙いでハック出来ないかと思ったので、1000個の整数を出すプログラムを書く。
  • カスタムテストなる機能で自分のプログラムを動かすと3.2秒だったので書き直すことにしました。
  • 深さ優先を少し改良すると、1秒以内に終わったので再提出。

Hack

  • 適当にTLEしそうな人に自分のプログラムを送ると、失敗。
  • もう一人、dfsという関数を書いている人が居たので、その人に送ったら成功しました。
  • 欲を出してまた別の人に送ったら速攻で答え出されて±0に。
  • そんな感じで終了しました。

System test

  • A,Bともに落ちて0点。
  • Aは落ちる可能性高そうな気がしていたのですが、BがTLEになっていたのは残念でした。実力不足感がムクムクと盛り上がりますね。自分の作ったテストケースでは時間内に収まりそうだったので通るかと思ってました。

また明日頑張りたいと思います。

1549 -> 1477

2011-03-01

Codeforces Beta Round #59 (Div. 2)

| 10:10

多分、自分なりには可もなく不可もなくな回だったと思います。

DIV 2 ROOM 2

A

  • 開く。読む。書く。
  • manを入れ忘れたので、付け足す。
  • サブミット。AC

5分

B

  • 開く。読む。
  • えーと、同じランクを集めて、一番低いランクの人達のランクがあがる?(誤読)
  • サンプルはどう見てもそんな感じではない。
  • あ、同じランクの人達の中でひとりだけランクが上がるのか。
  • 添字をランクにした配列に人を突っ込んでいき、コイン1枚で上のランクから順に持ち上げた。
  • サブミット。AC

16分

C

  • 開く。ゲームの内容は知ってたので、読むのは楽だった。
  • 全通り試すことにする。
    • 取り敢えず、数字は文字列で扱い、推測した文字列と正解とする文字列が与えられたときにb,cの値を返す関数を作る。
    • 正解となりうる文字列を'0'~'9'をつっこんだ配列から、permutationで回して取り出すと時間が足りないのと、バグってちょっと焦る。
    • 普通に10^4*4!で行ける。
    • 書く。サンプル出た。
    • 出す。Wrong answer on pretest 3
    • 3?Incorrecって書いてた。直してAC

51分

D

  • 開く。読む。読解にちょっと時間がかかる。
  • 下から上にジグザグに行けば、絶対に埋められるだろう。と思い、書く。
  • 自分の座標から次の座標を点々としていく処理がうまく書けない。
  • サンプル出たが、プリテストでRE。
  • 下から上にいく時の判定が上手くかけてない。頭が混乱する。
  • 結局間に合わず。
  • あとで解いておきたい。

Hack

  • 大きなデータを投げてTLEが狙えそうな問題じゃないので、相手のコードをじっくり読まないといけないけど、Dを解いていたので時間が無い。
  • いくつかひらいてみたけれど、ぱっと見て落とせそうに見えず何も出来ませんでした。
  • Aでsort使っている人と、Cで%d使っている人はシステムテスト落ちてるみたいでした。sort使っている人は意図的に撃墜するのは、かなり難しいきがしますが、%dの人は気付きたかったです。

System test

  • 全部AC。うれしい。

1364->1549 青になれました。