結果
| 問題 |
No.61 リベリオン
|
| コンテスト | |
| ユーザー |
kyuridenamida
|
| 提出日時 | 2016-02-18 03:00:40 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,119 bytes |
| コンパイル時間 | 1,354 ms |
| コンパイル使用メモリ | 161,328 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-22 07:46:04 |
| 合計ジャッジ時間 | 4,914 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 2 WA * 2 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int (i) = 0 ; (i) < (int)(n) ; (i)++)
#define REP(i,a,b) for(int (i) = a ; (int)(i) <= (int)(b) ; (i)++)
#define all(n) (n).begin(),(n).end()
typedef long long ll;
typedef vector<int> Vi;
typedef vector<Vi> VVi;
typedef pair<long long,long long> Pii;
typedef vector<Pii> VPii;
typedef complex<double> P;
int canDiv(int a,int b){
if( b == 0 ) return a == 0;
else return 1. * a / b >= 0;
}
int main(){
int Q;
cin >> Q;
while(Q--){
int W,H,D,Mx,My,Hx,Hy,Vx,Vy;
cin >> W >> H >> D >> Hx >> Hy >> Mx >> My >> Vx >> Vy;
int sx = Vx >= 0 ? +1 : -1;
int sy = Vy >= 0 ? +1 : -1;
for(int i = 0 ; i < 80; i++){
for(int j = 0 ; j < 80 ; j++){
int ox = sx*j * W;
int oy = sy*i * H;
int hx = (j % 2 ? W - Hx : Hx)+ox;
int hy = (i % 2 ? H - Hy : Hy)+oy;
P I = P(hx,hy) - P(Mx,My);
P V(Vx,Vy);
if( abs(I)/abs(V) > D + 1e-4 ) continue;
P IE = I / abs(I);
P VE = V / abs(V);
if( abs(IE-VE) <= 1e-9 ){
cout << "Hit" << endl;
goto exit;
}
}
}
cout << "Miss" << endl;
exit:;
}
}
kyuridenamida