結果
問題 |
No.3086 Re One Two
|
ユーザー |
![]() |
提出日時 | 2025-04-04 22:49:45 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 431 ms / 2,000 ms |
コード長 | 1,839 bytes |
コンパイル時間 | 2,348 ms |
コンパイル使用メモリ | 209,256 KB |
実行使用メモリ | 15,252 KB |
最終ジャッジ日時 | 2025-04-04 22:50:32 |
合計ジャッジ時間 | 14,788 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = int64_t; using ull = uint64_t; using vi = vector<int>; using vc = vector<char>; using vs = vector<string>; using vd = vector<double>; using vll = vector<ll>; using vb = vector<bool>; using pii = pair<int,int>; using psi = pair<string,int>; using pis = pair<int,string>; using pci = pair<char,int>; using tiii = tuple<int,int,int>; using mii = map<int,int>; using mis = map<int,string>; using msi = map<string,int>; using mci = map<char,int>; using si = set<int>; using ss = set<string>; using sc = set<char>; using sll = set<ll>; using spii = set<pii>; using qi = queue<int>; using vvc = vector<vc>; using vvi = vector<vi>; using vvb = vector<vb>; using vvs = vector<vs>; using vvll = vector<vll>; using vpii = vector<pii>; using vpci = vector<pci>; using mivi = map<int,vi>; using mivs = map<int,vs>; using misi = map<int,si>; int main() { int N,count = 0; cin >> N; vi A(N),B(N),result; mii final,ravel; for (int i = 0; i < N; i++) { cin >> A[i] >> B[i]; } //ラベル張り qi B_2; for (int i = 0; i < N; i++) { if (A[i] == 1) { ravel[i + 1] = i; } if (B[i] == 2) { B_2.push(i); } else if (B[i] == 1) { ravel[i] = B_2.front(); B_2.pop(); } } //実行 for (int i = 0; i < N; i++) { if (A[i] == 0 && B[i] == 0) { int now = i; result.push_back(now); while(ravel.count(now)) { int next = ravel.at(now); result.push_back(next); now = next; } } else if (A[i] == 0 && B[i] == 1) { int now = i; result.push_back(now); while(ravel.count(now)) { int next = ravel.at(now); result.push_back(next); now = next; } } } //出力 for (int i = 0; i < N; i++) { cout << result[i] + 1 << endl; } }