Submission #834008

#TimeUsernameProblemLanguageResultExecution timeMemory
834008finn__Comparing Plants (IOI20_plants)C++17
5 / 100
4058 ms4984 KiB
#include <bits/stdc++.h> #include "plants.h" using namespace std; constexpr size_t N = 200000; size_t n; int subtask, s[N], h[N]; void init(int k, std::vector<int> r) { n = r.size(); if (k == 2) subtask = 1; else subtask = 2; if (subtask == 1) { partial_sum(r.begin(), r.end(), s); } else { for (size_t i = 0; i < n - 1; ++i) { int conseq_nonzero = 0, next_max = 0; for (size_t j = 0; j < 2 * n;) { while (j < 2 * n && (!r[j % n] || r[j % n] < 0)) ++j; size_t k = j; while (k < 2 * n && r[k % n]) ++k; if (k - j > conseq_nonzero) conseq_nonzero = k - j, next_max = k % n; j = k; } h[next_max] = n - i; r[next_max] = -1; for (int j = next_max - k + 1; j < next_max; ++j) r[(j + (int)n) % n]--; } } } int compare_plants(int x, int y) { if (subtask == 1) { int z = s[y - 1] - (x ? s[x - 1] : 0); return !z ? 1 : (z == y - x ? -1 : (!(s[n - 1] - z) ? -1 : ((s[n - 1] - z == n - (y - x) ? 1 : 0)))); } else { return h[x] > h[y] ? 1 : -1; } }

Compilation message (stderr)

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:36:27: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |                 if (k - j > conseq_nonzero)
      |                     ~~~~~~^~~~~~~~~~~~~~~~
plants.cpp: In function 'int compare_plants(int, int)':
plants.cpp:55:83: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         return !z ? 1 : (z == y - x ? -1 : (!(s[n - 1] - z) ? -1 : ((s[n - 1] - z == n - (y - x) ? 1 : 0))));
      |                                                                      ~~~~~~~~~~~~~^~~~~~~~~~~~~~
#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...