結果
問題 | No.675 ドットちゃんたち |
ユーザー | prog470 |
提出日時 | 2019-06-22 16:47:59 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,236 bytes |
コンパイル時間 | 832 ms |
コンパイル使用メモリ | 100,960 KB |
実行使用メモリ | 5,504 KB |
最終ジャッジ日時 | 2024-06-07 22:53:29 |
合計ジャッジ時間 | 3,058 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,376 KB |
testcase_02 | AC | 1 ms
5,376 KB |
testcase_03 | AC | 2 ms
5,376 KB |
testcase_04 | AC | 2 ms
5,376 KB |
testcase_05 | AC | 158 ms
5,376 KB |
testcase_06 | AC | 179 ms
5,376 KB |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:96:26: warning: 'ansy' may be used uninitialized [-Wmaybe-uninitialized] 96 | cout<<ansx<<" "<<ansy<<endl; | ^~~~ main.cpp:77:19: note: 'ansy' was declared here 77 | int ansx, ansy; | ^~~~ main.cpp:96:21: warning: 'ansx' may be used uninitialized [-Wmaybe-uninitialized] 96 | cout<<ansx<<" "<<ansy<<endl; | ^~~ main.cpp:77:13: note: 'ansx' was declared here 77 | int ansx, ansy; | ^~~~
ソースコード
#include <cmath> #include <cstdio> #include <algorithm> #include <cstring> #include <deque> #include <iostream> #include <map> #include <queue> #include <set> #include <stack> #include <string> #include <utility> #include <vector> #define REP(i, n, N) for(ll i=(n);i<(N);i++) #define RREP(i, n, N) for(ll i=(N-1);i>=(n);i--) #define CK(n, a, b) ((a)<=(n)&&(n)<(b)) #define ALL(v) (v).begin(), (v).end() #define MCP(a, b) memcpy(b,a,sizeof(b)) #define p(s) cout<<(s)<<endl #define p2(a, b) cout<<(a)<<" "<<(b)<<endl typedef long long ll; using namespace std; const ll mod = 1e9 + 7; const ll inf = 1e18; int N, Px, Py; int cmd[100010][2]; int movex[100010]; int movey[100010]; int rd[100010]; int main() { cin>>N>>Px>>Py; REP(i,0,N){ cin>>cmd[i][0]; if(cmd[i][0] != 3) cin>>cmd[i][1]; } int routeCount = 0; REP(i,0,N){ if(cmd[i][0] == 3) routeCount++, rd[i] = 1; if(i > 0) rd[i] += rd[i-1]; } RREP(i,0,N){ if(cmd[i][0] == 3) { routeCount--; continue; } if(routeCount % 4 == 0){ if (cmd[i][0] == 1) movex[i] = cmd[i][1]; else movey[i] = cmd[i][1]; }else if(routeCount % 4 == 1) { if (cmd[i][0] == 1) movey[i] = -cmd[i][1]; else movex[i] = cmd[i][1]; }else if(routeCount % 4 == 2) { if (cmd[i][0] == 1) movex[i] = -cmd[i][1]; else movey[i] = -cmd[i][1]; }else if(routeCount % 4 == 3) { if (cmd[i][0] == 1) movey[i] = cmd[i][1]; else movex[i] = -cmd[i][1]; } } RREP(i,0,N-1){ movex[i] += movex[i+1]; movey[i] += movey[i+1]; } REP(i,0,N){ int x = Px + movex[i]; int y = Py + movey[i]; int ansx, ansy; int r =rd[N-1] - rd[i]; if(cmd[i][0] == 3) r++; if(r % 4 == 0){ ansx = x; ansy = y; }else if(r % 4 == 1) { ansx = y; ansy = -x; }else if(r % 4 == 2) { ansx = -x; ansy = -y; }else if(r % 4 == 3) { ansx = -y; ansy = x; } cout<<ansx<<" "<<ansy<<endl; } return 0; }