0135-Clock Short Hand and Long Hand
このままじゃあソースを張るだけになってしまうので、思考の軌跡とかを載せることにする。
http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0135
問題文を読んで笑ってしまった。
時刻をh時m分とすると、
短針の角度は360*m/60
長針の角度は360*(h*60+m)/720
となるので、それを実装すればよいのだが、
2の角度が5°と355°のような場合に注意する。
後、長針の角度は実数になるのでそれにも気をつける。
int main(){ int h,m,n; double hh,mm; double dis; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d:%d",&h,&m); mm=360.0*(double)m/60.0; hh=360.0*((double)h*60.0+(double)m)/720.0; dis=fabs(hh-mm); if (dis>180) dis=360-dis; if(dis<30){ printf("alert\n"); } else if(dis>=90){ printf("safe\n"); } else { printf("warning\n"); } fflush(stdout); } return 0; }