Submission #237346

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
2373462020-06-06 04:07:29nikatamlianiOne-Way Streets (CEOI17_oneway)C++14
100 / 100
496 ms39136 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, LG = 20;
int d[N], a[N], b[N], in[N], out[N], dp[N], p[N][2], L[N][LG], n, m, q;
vector < pair < int, int > > edges[N];
bool ok[N], vis[N], marked[N][2];
map < pair < int, int >, int > ind;
void dfs(int x, int p, int index){
static int timer = 0;
if(vis[x])return;
vis[x] = true;
d[x] = d[p] + 1;
L[x][0] = p;
for(int i = 1; i < LG; ++i) L[x][i] = L[L[x][i - 1]][i - 1];
in[x] = ++timer;
for(int i = 0; i < (int)edges[x].size(); ++i){
int to = edges[x][i].first;
if(edges[x][i].second != index){
if(vis[to]){
dp[x] += in[x] < in[to] ? -1 : 1;
}else{
dfs(to, x, edges[x][i].second);
dp[x] += dp[to];
}
}
}
out[x] = ++timer;
ok[ind[{x, p}]] = !dp[x];
}
bool isAnc(int potAnc, int potChild){
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

oneway.cpp: In function 'bool isAnc(int, int)':
oneway.cpp:31:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
  return !potAnc || in[potAnc] <= in[potChild] && out[potAnc] >= out[potChild];
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...