이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*
Code by @marlov
*/
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <utility>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <queue>
#include <iterator>
#include <bitset>
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
#define maxN 3005
vector<int> adj[maxN];
int maxC=0;
bool visitedS[maxN];
bool visitedE[maxN];
void bfsS(int n,int lb){
queue<int> q;
q.push(n);
fill(visitedS,visitedS+maxN,false);
while(!q.empty()){
int cn=q.front();
q.pop();
if(cn<lb) continue;
visitedS[cn]=true;
for(int a:adj[cn])if(!visitedS[a]){
q.push(a);
}
}
}
void bfsE(int n,int ub){
queue<int> q;
q.push(n);
fill(visitedE,visitedE+maxN,false);
while(!q.empty()){
int cn=q.front();
q.pop();
if(cn>ub) continue;
visitedE[cn]=true;
for(int a:adj[cn])if(!visitedE[a]){
q.push(a);
}
}
}
vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R){
int M=X.size();
int Q=S.size();
vector<int> result;
for(int i=0;i<M;i++){
int u=X[i];
int v=Y[i];
adj[u].push_back(v);
adj[v].push_back(u);
maxC=max(maxC,(int)max(adj[v].size(),adj[u].size()));
}
//if(M==N-1&&maxC<=2){
//}else{
for(int i=0;i<Q;i++){
bfsS(S[i],L[i]);
bfsE(E[i],R[i]);
bool possible=false;
for(int j=L[i];j<=R[i];j++){
if(visitedS[j]&&visitedE[j]) possible=true;
}
if(possible) result.push_back(1);
else result.push_back(0);
}
//}
return result;
}
/*
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
vector<int> ans=check_validity(6,{5,1,1,3,3,5},{1,2,3,4,0,2},{4,4,5},{2,2,4},{1,2,3},{2,2,4});
for(int a:ans) cout<<a<<" ";
return 0;
}
*/
/* stuff you should look for
* int overflow, array bounds
* special cases (n=1,n=0?)
* do smth instead of nothing and stay organized
*/
# | 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... |