ARC #012は不参加なので練習のみ。
まずは2問まとめて。
http://arc012.contest.atcoder.jp/tasks/arc012_1
http://arc012.contest.atcoder.jp/tasks/arc012_2
A - 週末
曜日が文字列で与えられるので、週末までの日数を答える。
文字列別の日数を覚えておき、文字列に対応する値を返せばよい。
配列で書いてもいいけど面倒なのでif文を7つ書いた。
スペルミスに要注意だね。
void solve() { char str[20]; int f,r,i,j,k,l; GETs(str); if(strcmp(str,"Monday")==0) _P("5\n"); if(strcmp(str,"Tuesday")==0) _P("4\n"); if(strcmp(str,"Wednesday")==0) _P("3\n"); if(strcmp(str,"Thursday")==0) _P("2\n"); if(strcmp(str,"Friday")==0) _P("1\n"); if(strcmp(str,"Saturday")==0) _P("0\n"); if(strcmp(str,"Sunday")==0) _P("0\n"); return; }
B - アキレスと亀
最初人と亀が距離L離れている。人は速度Va、亀が速度Vbで動く。
人が亀の位置に到達したとき、亀は少し動いている。この作業をN回繰り返した後の人と亀の距離を答える。
1回人が亀の位置に到達すると、残りの距離はVb/Va倍に縮まる。
よってL*(Vb/Va)^Nを返せばよい。
int N; double Va,Vb,L; void solve() { int f,r,i,j,k,l; char str[100]; N=GETi(); Va=GETi(); Vb=GETi(); L=GETi(); FOR(i,N) L=L*Vb/Va; _P("%.12lf\n",L); return; }
まとめ
今回のA,Bはいつもに比べて簡単?