이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef pair<int,int> p32;
typedef vector<p32> vp32;
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
int main(){
int n,m,q; cin>>n>>m>>q;
vp32 adj[n];
for(int i = 0; i<m; i++){
int a,b; cin>>a>>b;
a--; b--;
adj[a].eb(b,i+1);
adj[b].eb(a,i+1);
}
for(int i = 0; i<q; i++){
int l,r; cin>>l>>r;
int done[n];
memset(done,0,sizeof done);
stack<p32> qu;
for(int i = 0; i<n; i++){
if(!done[i]){
qu.emplace(i,i);
while(!qu.empty()){
p32 x = qu.top();
qu.pop();
done[x.fi] = done[x.se]+1;
for(p32 tt : adj[x.fi]){
if(tt.se<l||tt.se>r){
if(done[tt.fi]&&done[tt.fi]<done[x.fi]-1){
goto found;
}
if(done[tt.fi]==0){
qu.emplace(tt.fi,x.fi);
}
}
}
}
}
}
cout<<"NO\n";
continue;
found:
cout<<"YES\n";
}
return 0;
}
# | 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... |