結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
/*

*/
0