結果
問題 | No.61 リベリオン |
ユーザー | ttkkggww |
提出日時 | 2022-04-08 21:52:00 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 43 ms / 5,000 ms |
コード長 | 1,303 bytes |
コンパイル時間 | 3,931 ms |
コンパイル使用メモリ | 262,452 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-05-06 07:26:04 |
合計ジャッジ時間 | 4,641 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,248 KB |
testcase_02 | AC | 2 ms
5,248 KB |
testcase_03 | AC | 41 ms
5,376 KB |
testcase_04 | AC | 43 ms
5,376 KB |
testcase_05 | AC | 2 ms
5,376 KB |
ソースコード
#include<bits/stdc++.h> using namespace std; #include<atcoder/all> using namespace atcoder; using ll = long long; ll h,w,d,sx,sy,tx,ty,vx,vy; void solve(){ ll xyv[16][16][2][2]; //tx--,ty--,sx--,sy--; for(ll i = 0;i<16;i++){ for(ll j = 0;j<16;j++){ for(ll k = 0;k<2;k++){ for(ll l = 0;l<2;l++){ xyv[i][j][k][l] = -1; } } } } { ll g = gcd(vx,vy); vx/=g; vy/=g; d *= g; } ll x = sx,y = sy; ll loop = INT_MAX/2; for(ll i = 0;i<d;i++){ //cout<<i<<' '<<sx<<' '<<sy<<endl; if(sx==tx&&sy==ty){ cout<<"Hit"<<endl; return; } for(ll j = 0;j<abs(vx);j++){ if(vx<0){ sx-=1; if(sx<0){ sx = 1; vx = -vx; } }else{ sx+=1; if(sx>w){ sx = w-1; vx = -vx; } } } for(ll j = 0;j<abs(vy);j++){ if(vy<0){ sy-=1; if(sy<0){ sy = 1; vy = -vy; } }else{ sy+=1; if(sy>h){ sy = h-1; vy = -vy; } } } if(xyv[sx][sy][vx>=0][vy>=0]>=0){ break; } xyv[sx][sy][vx>=0][vy>=0] = i; if(sx==tx&&sy==ty){ cout<<"Hit"<<endl; return; } } cout<<"Miss"<<endl; } signed main(){ cin.tie(nullptr); ios::sync_with_stdio(false); ll t; cin >> t; while(t--){ cin >> w >> h >> d >> sx >> sy >> tx >> ty >> vx >> vy; swap(sx,tx); swap(sy,ty); solve(); } }