あまりコード量の多くないネタコンテスト。
全体的にスムーズに行ったが、批判の多いE問題で大量WAした上で勘ACをとったため、全完勢としては微妙な順位。
http://codeforces.com/contest/630/problem/A
http://codeforces.com/contest/630/problem/B
http://codeforces.com/contest/630/problem/C
http://codeforces.com/contest/630/problem/D
http://codeforces.com/contest/630/problem/E
http://codeforces.com/contest/630/problem/F
解法のみ簡潔に書いていきます。
A. Again Twenty Five!
5^Nの下2桁を答える問題。Nは2以上なので25固定。
void solve() { cout<<25<<endl; }
B. Moore's Law
n*(1.000000011^t)を答えるだけ。
void solve() { ll N,T; cin>>N>>T; _P("%.12lf\n",N*pow(1.000000011,T)); }
C. Lucky Numbers
k桁のLucky Numbersは2^k個あるので、n桁以下のLucky numbersは2^(n+1)-2個。
void solve() { int N; cin>>N; cout<<((1LL<<(N+1))-2)<<endl; }
D. Hexagons!
中央から距離dのセルは6d個あるので、3*n*(n+1)+1を答えればよい。
d==0のときだけはセルは1個である。
void solve() { ll N; cin>>N; cout<<3*N*(N+1)+1<<endl; }
E. A rectangle
矩形内の格子点について、パリティが条件を満たす点を数える問題。
例文を見ると(0,0)がセルの中央にくるように見えるが、問題文を見ると一応(x1,y1)はセルの中央となるためx1,y1の偶奇によっては(0,0)がセルの中央に粉移転に注意。
正直問題設定がひどいと思う。
ll X1,X2,Y1,Y2; ll ret; void solve() { int i,j,k,l,r,x,y; string s; cin>>X1>>Y1>>X2>>Y2; if((Y2-Y1)%2==1) ret=(X2-X1+1)*((Y2-Y1+1)/2); else { ret=(X2-X1+1)*((Y2-Y1)/2)+(X2-X1)/2+1; } cout<<ret<<endl; }
F. Selection of Personnel
を求めよう。
void solve() { ll N,ret=0; int i,x; cin>>N; for(i=5;i<=7;i++) { ll r=1; FOR(x,i) r*=N-x, r/=x+1; ret+=r; } cout<<ret<<endl; }
まとめ
E以外は良かったんだけどな。