Submission #1054038

#TimeUsernameProblemLanguageResultExecution timeMemory
1054038sleepntsheepDiversity (CEOI21_diversity)C++17
0 / 100
1 ms2396 KiB
#include <cstdio> #include <algorithm> #define N 300001 #define A 300001 int o, n, q, a[N], fr[N], fr2[N]; long long z, y; long long c2(int x) { return (x - 1ll) * x / 2ll; } int main() { scanf("%d%d", &n, &q); for (int i = 1; i <= n; ++i) scanf("%d", a + i), ++fr[a[i]]; for (int i = 1; i <= 300000; ++i) ++fr2[fr[i]]; int sum = 0; for (int i = 1; i <= n; ++i) for (; fr2[i]--; ) a[++o] = i, sum += i; for (int i = 1; i <= 10000; ++i) { int psum = 0; for (int j = 2; j <= o; psum += a[j++]) { int a_ = a[j - 1]; int b_ = a[j]; int x = psum - a_; int y = n - psum - b_; if (-c2(b_ + y + 1) -c2(a_ + x + 1) > -c2(b_ + x + 1) - c2(a_ + y + 1)) std::swap(a[j], a[j - 1]); } } int psum = 0; for (int i = 1; i <= o; psum += a[i++]) { z += c2(n + 1) - c2(psum + 1) - c2(n - psum - a[i] + 1); } printf("%lld", z); }

Compilation message (stderr)

diversity.cpp: In function 'int main()':
diversity.cpp:12:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |   scanf("%d%d", &n, &q);
      |   ~~~~~^~~~~~~~~~~~~~~~
diversity.cpp:13:37: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |   for (int i = 1; i <= n; ++i) scanf("%d", a + i), ++fr[a[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...
#Verdict Execution timeMemoryGrader output
Fetching results...