Submission #330673

#TimeUsernameProblemLanguageResultExecution timeMemory
330673caoashPlaninarenje (COCI18_planinarenje)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector<int>; using vl = vector<ll>; #define pb push_back #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define lb lower_bound #define ub upper_bound using pi = pair<int,int>; #define f first #define s second #define mp make_pair namespace output { void pr(int x) { cout << x; } void pr(long x) { cout << x; } void pr(ll x) { cout << x; } void pr(unsigned x) { cout << x; } void pr(unsigned long x) { cout << x; } void pr(unsigned long long x) { cout << x; } void pr(float x) { cout << x; } void pr(double x) { cout << x; } void pr(long double x) { cout << x; } void pr(char x) { cout << x; } void pr(const char * x) { cout << x; } void pr(const string & x) { cout << x; } void pr(bool x) { pr(x ? "true" : "false"); } template < class T1, class T2 > void pr(const pair < T1, T2 > & x); template < class T > void pr(const T & x); template < class T, class...Ts > void pr(const T & t, const Ts & ...ts) { pr(t); pr(ts...); } template < class T1, class T2 > void pr(const pair < T1, T2 > & x) { pr("{", x.f, ", ", x.s, "}"); } template < class T > void pr(const T & x) { pr("{"); // const iterator needed for vector<bool> bool fst = 1; for (const auto & a: x) pr(!fst ? ", " : "", a), fst = 0; pr("}"); } void ps() { pr("\n"); } // print w/ spaces template < class T, class...Ts > void ps(const T & t, const Ts & ...ts) { pr(t); if (sizeof...(ts)) pr(" "); ps(ts...); } void pc() { cout << "]" << endl; } // debug w/ commas template < class T, class...Ts > void pc(const T & t, const Ts & ...ts) { pr(t); if (sizeof...(ts)) pr(", "); pc(ts...); } #define dbg(x...) pr("[", #x, "] = ["), pc(x); } #ifdef mikey using namespace output; #else using namespace output; #define dbg(x...) #endif const int MX = 5005; const int MOD = (int) (1e9 + 7); const ll INF = (ll) 1e18; int done[MX]; int pa[MX], pb[MX]; int it = 0; vi adj[MX]; bool dfs(int v, int ig) { done[v] = it; for (int to : adj[v]) { if (pb[to] == -1) { pa[v] = to; pb[to] = v; return true; } } for (int to : adj[v]) { if (pb[to] == ig) continue; if (done[pb[to]] != it && dfs(pb[to], ig)) { pa[v] = to; pb[to] = v; return true; } } return false; } int main(){ #ifdef mikey freopen("a.in", "r", stdin); #endif ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; u--, v--; adj[u].pb(v); } memset(pa, -1, sizeof(pa)); memset(pb, -1, sizeof(pb)); auto aug = [&] (int ig) { int mm = 0; for (int i = 0; i < n; i++) { if (i == ig) continue; if (pa[i] == -1 && dfs(i, ig)) ++mm; } return mm; }; int best = 0; int add = 0; do { ++it; add = aug(-1); best += add; } while (add > 0); for (int i = 0; i < n; i++) { int old = pa[i]; if (pa[i] == -1) { cout << "Mirko\n"; continue; } int nbest = 0; bool change = (pb[old] == i); pa[i] = -1; if (change) pb[old] = -1; do { ++it; add = aug(i); } while (add > 0); for (int j = 0; j < n; j++) { if (j != ig && pa[j] != -1) { nbest += (pb[pa[j]] == j); } } assert(nbest <= best); if (nbest == best) { cout << "Mirko\n"; } else { cout << "Slavko\n"; } pa[i] = old; if (change) pb[old] = i; } }

Compilation message (stderr)

planinarenje.cpp:104: warning: "dbg" redefined
  104 | #define dbg(x...)
      | 
planinarenje.cpp:97: note: this is the location of the previous definition
   97 |   #define dbg(x...) pr("[", #x, "] = ["), pc(x);
      | 
planinarenje.cpp: In function 'int main()':
planinarenje.cpp:180:22: error: 'ig' was not declared in this scope; did you mean 'i'?
  180 |             if (j != ig && pa[j] != -1) {
      |                      ^~
      |                      i