Submission #1050322

#TimeUsernameProblemLanguageResultExecution timeMemory
1050322aykhnComparing Plants (IOI20_plants)C++17
0 / 100
1 ms600 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; const int MXN = 5e3 + 5; int n; int a[MXN], cnt[MXN], f[MXN]; vector<int> adj[MXN]; int big[MXN][MXN], used[MXN]; void dfs(int a, int s) { big[s][a] = 1; used[a] = 1; for (int &v : adj[a]) { if (!used[v]) dfs(v, s); } } void init(int k, vector<int> r) { n = r.size(); for (int i = 0; i < n; i++) cnt[i] = k - 1; int cur = -1; while (cur < n) { vector<int> idx; for (int i = 0; i < n; i++) { if (f[i]) continue; if (r[i] == cnt[i]) idx.push_back(i); } if (idx.empty()) break; int ind = 0; int sz = idx.size(); // ind = 0 // if (sz == 1) ind = 0; // else // { // for (int i = 0; i < sz; i++) // { // if ((idx[(i + 1) % sz] - idx[i] + n) % n >= k) // { // ind = (i + 1) % sz; // break; // } // } // } // assert(!idx.empty()); // for (int i = (idx[ind] - 1 + n) % n; i != idx[(ind - 1 + sz) % sz]; i = (i - 1 + n) % n) // { // if (!f[i]) adj[idx[ind]].push_back(i); // } for (int i = (idx[ind] + 1) % n; i != (idx[ind] + k) % n; i = (i + 1) % n) { if (!f[i]) adj[idx[ind]].push_back(i); else adj[i].push_back(idx[ind]); } for (int i = (idx[ind] - 1 + n) % n; i != (idx[ind] - k + n) % n; i = (i - 1 + n) % n) { // if (!f[i]) adj[idx[ind]].push_back(i); cnt[i]--; } f[idx[ind]] = 1; } for (int i = 0; i < n; i++) { fill(used, used + n, 0); dfs(i, i); } } int compare_plants(int x, int y) { if (big[x][y]) return -1; if (big[y][x]) return 1; return 0; // return (a[x] > a[y] ? 1 : -1); }

Compilation message (stderr)

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:38:7: warning: unused variable 'sz' [-Wunused-variable]
   38 |   int sz = idx.size();
      |       ^~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...