結果
| 問題 | No.3086 Re One Two | 
| コンテスト | |
| ユーザー |  wsrtrt | 
| 提出日時 | 2025-04-04 21:38:01 | 
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 90 ms / 2,000 ms | 
| コード長 | 1,341 bytes | 
| コンパイル時間 | 5,418 ms | 
| コンパイル使用メモリ | 277,032 KB | 
| 実行使用メモリ | 7,568 KB | 
| 最終ジャッジ日時 | 2025-04-04 21:40:11 | 
| 合計ジャッジ時間 | 9,836 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 32 | 
ソースコード
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define fore(i,a) for(auto& i:a)
#define ff first 
#define ss second 
#define all(a) begin(a),end(a)
#define allr(a) rbegin(a),rend(a)
#define pb push_back
using namespace std;
using ll =long long;
using pii=pair<int,int>;
using pll=pair<ll,ll>;
using vi=vector<int>;
using vll=vector<ll>;
template<class T> inline bool chmin(T& a,T b){return a>b?a=b,1:0;}
template<class T> inline bool chmax(T& a,T b){return a<b?a=b,1:0;}
int n,q;
vll a,b;
vll x,y;
template<class T> inline int ub(vector<T> &v,T c){return distance(begin(v),upper_bound(all(v),c));}
int main(){
    //cin.tie(0)->sync_with_stdio(0);
    int n;
    cin>>n;
    vi a(n),b(n);
    int pre=-1;
    rep(i,0,n){
        cin>>a[i]>>b[i];
    }
    vi ch(n,-1);
    vi p(n,-1);
    rrep(i,n-1,0){
        if(b[i]==1){
            pre=i;
        }else if(b[i]==2){
            ch[pre]=i;
            p[i]=pre;
        }
        if(a[i]==1){
            ch[i+1]=i;
            p[i]=i+1;
        }
    }
    vector<int> ans;
    rep(i,0,n){
        if(p[i]==-1){
            int pos=i;
            while(pos!=-1){
                ans.pb(pos);
                pos=ch[pos];
            }
        }
    }
    rep(i,0,n){
        cout<<ans[i]+1<<'\n';
    }
    return 0;
}
/*
*/
            
            
            
        