# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
341509 | FlashGamezzz | 늑대인간 (IOI18_werewolf) | C++11 | 334 ms | 524292 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <unordered_set>
#include <vector>
#include <utility>
#include "werewolf.h"
using namespace std;
vector<int> adj[3000], szs;
bool r1[3000], r2[3000];
void dfs1(int i, int l){
if (i >= l){
r1[i] = true;
for (int a : adj[i]){
if (a >= l && !r1[a]){
dfs1(a, l);
}
}
}
}
void dfs2(int i, int r){
if (i <= r){
r1[i] = true;
for (int a : adj[i]){
if (a <= r && !r2[a]){
dfs2(a, r);
}
}
}
}
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 Q = S.size(); vector<int> A(Q);
for (int i = 0; i < Q; ++i) {
A[i] = 0;
}
for (int i = 0; i < X.size(); i++){
adj[X[i]].push_back(Y[i]); adj[Y[i]].push_back(X[i]);
}
for (int i = 0; i < Q; i++) {
for (int j = 0; j < N; j++){
r1[j] = false; r2[j] = false;
}
dfs1(S[i], L[i]); dfs2(E[i], R[i]);
for (int j = L[i]; j <= R[i]; j++){
if (r1[j] && r2[j]){
A[i] = 1; break;
}
}
}
return A;
}
Compilation message (stderr)
# | 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... |