Codeforcesの2連勝がトラブルで巻き戻ってげんなりしている。
ARC018は不参加のため復習中。Dはまだ解いていない。
http://arc018.contest.atcoder.jp/tasks/arc018_1
http://arc018.contest.atcoder.jp/tasks/arc018_2
A - BMI
BMI(kg/m^2) = 体重(kg)/(身長(m)*身長(m))で表現される。
身長がcm単位で与えられ、BMI値が与えられたとき、体重を求めよ。
cmとmの違いに注意して計算するだけ。
void solve() { int f,i,j,k,l,x,y; double bmi,height; cin>>height>>bmi; _P("%.12lf\n",bmi*height*height/10000); } || *B - 格子点と整数 いくつかの格子点の座標が与えられる。 ここから点を3つ選んだとき、面積が正の整数であるような選び方は何通りあるか。 点が100個しかないので総当たりで3つ選び、外積をとって絶対値が0より大きな整数となるものをカウントすればよい。 >|cpp| void solve() { int f,i,j,k,l,x,y,z; int N,X[100],Y[100]; cin>>N; FOR(i,N) cin>>X[i]>>Y[i]; f=0; FOR(x,N) for(y=x+1;y<N;y++) for(z=y+1;z<N;z++) { ll area=(Y[z]-Y[x])*(ll)(X[y]-X[x])-(X[z]-X[x])*(ll)(Y[y]-Y[x]); if(area != 0 && area %2 == 0) f++; } cout << f << endl; }
まとめ
地味にcmとmの変換を忘れてAに手間取った…。