省略
省略
C++に変換後のコードはこちら
int N, K[1d5], M, A;
int *T[1d5];
priority_queue<pair<int, pair<int,int>>> q1, q2, *q;
void do_push(int i){
if(K[i] >= 1) q1.push(make_pair(T[i][K[i]-1], make_pair(i, K[i]-1)));
if(K[i] >= 1) q2.push(make_pair(T[i][K[i]-1], make_pair(i, K[i]-1)));
if(K[i] >= 2) q2.push(make_pair(T[i][K[i]-2], make_pair(i, K[i]-2)));
}
{
int res, i, j;
rd(N);
rep(i,N){
rd(K[i]);
walloc1d(&T[i], K[i]);
rd(T[i](K[i]));
reverse(T[i], T[i]+K[i]);
}
rep(i,N) do_push(i);
REP(rd_int()){
rd(A);
do{
q = & if[A==1, q1, q2];
res = q->top().first;
i = q->top().second.first;
j = q->top().second.second;
q->pop();
}while((!(j < K[i])) || T[i][j] != res);
wt(res);
if(j == K[i]-2) T[i][K[i]-2] = T[i][K[i]-1];
K[i]--;
do_push(i);
}
}
Current time: 2024年04月25日18時29分34秒
Last modified: 2021年01月02日17時05分26秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)