이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int rd(){
int x=0,w=1;
char ch=getchar();
for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') w=-1;
for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';
return x*w;
}
void solve(){
int n,q; cin>>n>>q;
vector<int> pre(n+q+2),t(n+2);
t[1]=0;
for(int i=0;i<n+q-1;i++){
char x; cin>>x;
if(x=='C'){
int block; cin>>block;
int ti=t[block];
//how many blocks that has S after ti
if(ti==-1) cout<<"1\n";
else{
int ans=pre[i-1]+(ti-1>=0?pre[ti-1]:0)+1;
cout<<ans<<'\n';
}
}
else if(x=='Q'){
int u,v; cin>>u>>v;
int tv=t[v],tu=t[u];
if(tu<=tv) cout<<"yes\n";
else cout<<"no\n";
}
else{
int u,v; cin>>u>>v;
if(u>v) swap(u,v);
t[v]=i;
pre[i]=1;
}
if(i>0) pre[i]=pre[i-1]+pre[i];
}
}
signed main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
int tt=1; //cin>>tt;
while(tt--){
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |