結果
問題 | No.61 リベリオン |
ユーザー | Ysmr_Ry |
提出日時 | 2014-11-29 15:00:03 |
言語 | C++11 (gcc 13.3.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,232 bytes |
コンパイル時間 | 1,895 ms |
コンパイル使用メモリ | 28,724 KB |
最終ジャッジ日時 | 2024-11-14 18:57:25 |
合計ジャッジ時間 | 2,496 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:57:54: error: ‘ceil’ was not declared in this scope 57 | int k = std::max( 2*W*b?(int)ceil((Hx-xs-2*W*c*alpha)/(2.0*W*b)):0, 2*H*a?(int)ceil((Hy-ys+2.0*H*c*beta)/(2.0*H*a)):0 ); | ^~~~ main.cpp:27:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 27 | scanf( "%d", &Q ); | ~~~~~^~~~~~~~~~~~ main.cpp:31:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 31 | scanf( "%d%d%d%d%d%d%d%d%d", &W, &H, &D, &Mx, &My, &Hx, &Hy, &Vx, &Vy ); | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include<cstdio> #include<cstdlib> #include<algorithm> #define rep(i,a) for(int i=0;i<(a);++i) int gcd( int a, int b ) { return b?gcd(b,a%b):a; } int extgcd( int a, int b, int &x, int &y ) { int d = a; if( b ) { d = extgcd( b, a%b, y, x ); y -= a/b*x; } else x = 1, y = 0; return d; } int main() { int Q; scanf( "%d", &Q ); while( Q-- ) { int W, H, D, Mx, My, Hx, Hy, Vx, Vy; scanf( "%d%d%d%d%d%d%d%d%d", &W, &H, &D, &Mx, &My, &Hx, &Hy, &Vx, &Vy ); while( Vx < 0 || Vy < 0 ) { int t; std::swap(W,H); t=Mx, Mx=-My, My=t; t=Hx, Hx=-Hy, Hy=t; t=Vx, Vx=-Vy, Vy=t; } bool fl = false; rep( i, 4 ) { int xs = i&1?Mx+2*(W-Mx):Mx, ys = i>=2?My+2*(H-My):My; int a = 2*W*Vy, b = 2*H*Vx, c = Vx*(ys-Hy)-Vy*(xs-Hx); int g = gcd(a,b); if( c % g ) continue; a /= g, b /= g; c /= g; int alpha, beta; extgcd( a, b, alpha, beta ); int k = std::max( 2*W*b?(int)ceil((Hx-xs-2*W*c*alpha)/(2.0*W*b)):0, 2*H*a?(int)ceil((Hy-ys+2.0*H*c*beta)/(2.0*H*a)):0 ); if( (Vx?(xs+2*W*(b*k+c*alpha))/Vx:(ys+2*H*(a*k-c*beta))/Vy) <= D ) { fl = true; break; } } puts( fl?"Hit":"Miss" ); } return 0; }