結果
| 問題 | No.3086 Re One Two | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2025-04-04 22:31:27 | 
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 339 ms / 2,000 ms | 
| コード長 | 720 bytes | 
| コンパイル時間 | 6,142 ms | 
| コンパイル使用メモリ | 333,044 KB | 
| 実行使用メモリ | 7,720 KB | 
| 最終ジャッジ日時 | 2025-04-04 22:32:02 | 
| 合計ジャッジ時間 | 17,499 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 32 | 
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll=long long;
int main()
{
    int n;
    cin>>n;
    vector<int> a(n),b(n);
    for(int i=0;i<n;i++)cin>>a[i]>>b[i];
    vector<int> nxt(n,-1);
    {
        int p=-1;
        for(int i=0;i<n;i++){
            if(a[i]==1){
                nxt[i+1]=i;
            }
            if(b[i]==2){
                p=i;
            }else if(b[i]==1){
                nxt[i]=p;
            }
        }
    }
    for(int i=0;i<n;i++){
        if(a[i]==1||b[i]==2)continue;
        cout<<i+1<<endl;
        int x=i;
        while(nxt[x]!=-1){
            cout<<nxt[x]+1<<endl;
            x=nxt[x];
        }
    }
    return 0;
}
            
            
            
        