Submission #819955

#TimeUsernameProblemLanguageResultExecution timeMemory
819955Marco_EscandonKeys (IOI21_keys)C++17
9 / 100
3067 ms41928 KiB
#include "keys.h" #include <cassert> #include <cstdio> #include<bits/stdc++.h> using namespace std; typedef long long ll; vector<vector<pair<ll,ll>>> cad; vector<vector<ll>> ca; std::vector<int> find_reachable(std::vector<int> r, std::vector<int> u, std::vector<int> v1, std::vector<int> c) { ll n=r.size(); ll m=u.size(); ca.resize(n*2+1);cad.resize(n*2+1); for(int i=0; i<m; i++){ cad[u[i]].push_back({v1[i],c[i]}); cad[v1[i]].push_back({u[i],c[i]}); ca[c[i]].push_back(u[i]); ca[c[i]].push_back(v1[i]); } ll bs=n+3; vector<int> sol(n,0); for(int i=0; i<n; i++) { vector<ll> v(n*2,0),lla(n*2,0); queue<ll> q; v[i]=2; q.push(i); while(!q.empty()) { ll a=q.front();q.pop(); if(lla[r[a]]==0) for(auto j:ca[r[a]]) { if(v[j]==1) { v[j]==2; q.push(j); } } lla[r[a]]=1; for(auto j:cad[a]) { if(v[j.first]==0||v[j.first]==1) { v[j.first]=1; if(lla[j.second]==1) { v[j.first]=2; q.push(j.first); } } } } ll cont=0; for(auto j:v) if(j==2) cont++; sol[i]=cont; bs=min(bs,cont); } for(int i=0; i<n; i++) if(sol[i]==bs) sol[i]=1; else sol[i]=0; return sol; }

Compilation message (stderr)

keys.cpp: In function 'std::vector<int> find_reachable(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
keys.cpp:41:29: warning: value computed is not used [-Wunused-value]
   41 |                         v[j]==2;
keys.cpp:36:14: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   36 |              if(lla[r[a]]==0)
      |              ^~
keys.cpp:45:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   45 |                 lla[r[a]]=1;
      |                 ^~~
#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...