제출 #713118

#제출 시각아이디문제언어결과실행 시간메모리
713118PetyDiversity (CEOI21_diversity)C++14
64 / 100
60 ms10380 KiB
#include <bits/stdc++.h>

using namespace std;

int n, a[300002], q, l, r, fr[300002], pref[300002], suf[300002];

int main () 
{
  ios_base::sync_with_stdio(false);
  cin.tie(0); cout.tie(0);
  cin >> n >> q;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    fr[a[i]]++;
  }
  cin >> l >> r;
  vector<pair<int, int>>a, b;
  for (int i = 1; i <= 300000; i++)
    if (fr[i])
      a.push_back({fr[i], i});
  sort(a.begin(), a.end());
  b.push_back({0, 0});
  for (int i = 0; i < a.size(); i += 2)
    b.push_back(a[i]);
  for (int i = (a.size() % 2 ? a.size() - 2 : a.size() - 1); i >= 0; i -= 2)
    b.push_back(a[i]);
  for (int i = 1; i < b.size(); i++)
    pref[i] = pref[i - 1] + b[i].first;
  for (int i = b.size() - 1; i >= 1; i--)
    suf[i] = suf[i + 1] + b[i].first;
  long long ans = 0;
  for (int i = 1; i < b.size(); i++) {
    long long val = 1ll * pref[i - 1] * suf[i + 1];
    val += 1ll * b[i].first * suf[i + 1];
    val += 1ll * b[i].first * pref[i - 1];
    val += 1ll * b[i].first * (b[i].first + 1) / 2;
    ans += val;
  }
  cout << ans;
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

diversity.cpp: In function 'int main()':
diversity.cpp:23:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |   for (int i = 0; i < a.size(); i += 2)
      |                   ~~^~~~~~~~~~
diversity.cpp:27:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |   for (int i = 1; i < b.size(); i++)
      |                   ~~^~~~~~~~~~
diversity.cpp:32:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   for (int i = 1; i < b.size(); 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...