이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define all(a) a.begin(),a.end()
#define pb push_back
#define vt vector
#define endl '\n'
typedef long long ll;
const ll mod=1e9+7;
const ll inf=mod;
const int N=5e6+4;
string ans;
int n,m,q,u[N],v[N],used[N];
vt<int>g[N];
void dfs(int v,int val=1){
used[v]=val;
// cout<<v<<' '<<used[v]<<endl;
for(int to:g[v]) {
if(!used[to]) dfs(to,3-val);
if(used[to]==used[v]){
ans="YES";
}
}
}
void solve(){
cin>>n>>m>>q;
for(int i=1; i<=m; ++i){
cin>>u[i]>>v[i];
}
if(max({n,m,q})<=2000){
while(q--){
int l,r;
cin>>l>>r;
for(int i=1; i<l; ++i){
g[u[i]].pb(v[i]);
g[v[i]].pb(u[i]);
}
for(int i=r+1; i<=m; ++i){
g[u[i]].pb(v[i]);
g[v[i]].pb(u[i]);
}
ans="NO";
for(int i=1; i<=n; ++i) if(!used[i]) dfs(i);
cout<<ans<<endl;
for(int i=1; i<l; ++i){
g[u[i]].clear();
g[v[i]].clear();
used[u[i]]=0;
used[v[i]]=0;
}
for(int i=r+1; i<=m; ++i){
g[u[i]].clear();
g[v[i]].clear();
used[u[i]]=0;
used[v[i]]=0;
}
}
}
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.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... |