Google Code Jam Qualification Round
GCJ出てました。
Problem A Bot Trust
簡単問題
ですが何故かきれいなコードが書けない症候群(時々なる)に陥ってしばらくコードを書いては消しを繰り返し、30分ぐらいでようやく書き終わる(これが時間制限ありのコンテストで起こると焦る)
普通にサンプルとSmallが通りLargeもAC
int main(){ int T;scanf("%d",&T); FILE *fp=fopen("out.txt","w"); REP(setn,T){ int n;scanf("%d\n",&n); int time1=0,time2=0; int p=1,p2=1; REP(i,n){ char c;int pl;scanf("%c %d\n",&c,&pl); if(c=='O'){ time1+=abs(p-pl)+1; time1=max(time1,time2+1); p=pl; }else{ time2+=abs(p2-pl)+1; time2=max(time2,time1+1); p2=pl; } } printf("Case #%d: %d\n",setn+1,max(time1,time2)); fprintf(fp,"Case #%d: %d\n",setn+1,max(time1,time2)); } return 0; }
Problem B Magicka
まどマギとは関係ないみたい
やるだけ問題のはずなんですが英語が分からずしばらく放置して、もう一度チャレンジしたらあっさり通りました
コードは汚いので見せられません
Problem C Candy Splitting
2進数の計算が不自由な子供を騙す問題
2^NでSmallのみ通しました
int main(){ int T;scanf("%d",&T); FILE* fp=fopen("out.txt","w"); REP(setn,T){ int N;scanf("%d",&N); vi nums(N); REP(i,N){ scanf("%d",&nums[i]); } sort(ALL(nums)); int maxbit=1<<N; int res=-1; REPN(bit,maxbit-1,1){ int a=0,b=0,really=0; REP(i,N){ if(bit>>i&1){ really+=nums[i]; a^=nums[i]; }else{ b^=nums[i]; } } if(a==b) res=max(really,res); } if(res!=-1) fprintf(fp,"Case #%d: %d\n",setn+1,res); else fprintf(fp,"Case #%d: NO\n",setn+1); } return 0; }
Problem D GoroSort
うーん、よく分からない
多分既にあるべき場所に置かれてる数を抑えて・・・ってやってくんだろうけど
N個のバラバラな要素があったとき全部あるべき場所に入る期待値から分からない
分かればコードは短そうだなあとか思いつつ諦める
結局55点でした 5396位なのでまだまだです
早くから登録してしまったためハンドルはMissileMeshです