Submission #399267

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
3992672021-05-05 13:44:22LucaDantasThe Xana coup (BOI21_xanadu)C++17
100 / 100
100 ms23348 KiB
#include <bits/stdc++.h>
using namespace std;
constexpr int maxn = 1e5+10, inf = 0x3f3f3f3f;
vector<int> g[maxn];
int dp[maxn][2][2], new_dp[maxn][2][2], state[maxn];
void min_self(int& a, int b) { a = min(a, b); }
void dfs(int u, int p = 0) {
dp[u][0][state[u]] = 0;
dp[u][0][!state[u]] = inf;
dp[u][1][state[u]] = inf;
dp[u][1][!state[u]] = 1;
for(int v : g[u]) {
if(v == p) continue;
dfs(v, u);
for(int i : {0, 1}) { // vou me ativar ou n
for(int j : {0, 1}) { // estou ligado ou desligado - ja contando a minha ativação
for(int k : {0, 1}) { // ativo-inativo de v
for(int l : {0, 1}) { // ligado-desligado de u
if(i ^ l) continue; // n posso juntar pq eu preciso garantir q tá todo mundo desligado
min_self(new_dp[u][i][j^k], dp[u][i][j] + dp[v][k][l]);
}
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

xanadu.cpp: In function 'int main()':
xanadu.cpp:40:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   40 |  int n; scanf("%d", &n);
      |         ~~~~~^~~~~~~~~~
xanadu.cpp:42:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   42 |   scanf("%d %d", &a, &b), g[a].push_back(b), g[b].push_back(a);
      |   ~~~~~^~~~~~~~~~~~~~~~~
xanadu.cpp:44:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   44 |   scanf("%d", state + i);
      |   ~~~~~^~~~~~~~~~~~~~~~~
#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...