Submission #701378

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
7013782023-02-21 06:09:58Quan2003Swapping Cities (APIO20_swap)C++17
100 / 100
396 ms67768 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e5 + 100;
const int INF = 1e7 + 10;
long long n,m,q,dsz,E;
bool invalid;
int timer = 1;
vector<int>adj[N + 1];
int fa[N + 1];
bool cyc[N + 1];
int up[23][N + 1],dp[N + 1],val[N + 1];
int lf[N + 1],ri[N + 1];
int in[N + 1],to[N + 1];
int deg[N + 1],deg1[N + 1],deg3[N + 1];
vector<pair<int,pair<int,int>>>edges;
int find(int u){
if(u == fa[u]) return u;
return fa[u] = find(fa[u]);
}
void dfs_calc(int u){
if(!val[u]) val[u] = val[up[0][u]];
for(int i = 1; i < 23 ; i++){
up[i][u] = up[i - 1][up[i - 1][u]];
}
for(int i = 0; i < adj[u].size(); i++){
int v = adj[u][i];
if(v == up[0][u]) continue;
dp[v] = dp[up[0][v] = u] + 1;
dfs_calc(v);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

swap.cpp: In function 'void dfs_calc(int)':
swap.cpp:26:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for(int i = 0; i < adj[u].size(); i++){
      |                    ~~^~~~~~~~~~~~~~~
swap.cpp: In function 'void init(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
swap.cpp:63:15: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   63 |               if(deg[u] == 2) deg1[x]--;  if(deg[v] == 2) deg1[y]--;
      |               ^~
swap.cpp:63:43: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   63 |               if(deg[u] == 2) deg1[x]--;  if(deg[v] == 2) deg1[y]--;
      |                                           ^~
swap.cpp:64:15: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   64 |               if(deg[u] == 1) deg1[x]++;  if(deg[v] == 1) deg1[y]++;
      |               ^~
swap.cpp:64:43: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   64 |               if(deg[u] == 1) deg1[x]++;  if(deg[v] == 1) deg1[y]++;
      |                                           ^~
swap.cpp:65:15: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   65 |               if(deg[u] == 3) deg3[x]++;  if(deg[v] == 3) deg3[y]++;
      |               ^~
swap.cpp:65:43: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   65 |               if(deg[u] == 3) deg3[x]++;  if(deg[v] == 3) deg3[y]++;
      |                                           ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...