제출 #1089878

#제출 시각아이디문제언어결과실행 시간메모리
1089878juicyDiversity (CEOI21_diversity)C++17
64 / 100
7070 ms5892 KiB
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "debug.h" #else #define debug(...) 42 #endif int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; cin >> n >> q; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } while (q--) { int l, r; cin >> l >> r; auto b = vector(a.begin() + l - 1, a.begin() + r); sort(b.begin(), b.end()); vector<int> cnd; int m = b.size(); for (int i = 0; i < m; ) { int j = i; while (j < m && b[j] == b[i]) { ++j; } cnd.push_back(j - i); i = j; } sort(cnd.begin(), cnd.end()); int i = 0, j = m; long long res = (long long) m * (m + 1) / 2; for (int k = 0; k < cnd.size(); ++k) { if (k & 1) { j -= cnd[k]; res += (long long) j * (m - j); } else { res += (long long) i * (m - i); i += cnd[k]; } } cout << res << "\n"; } return 0; }

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

diversity.cpp: In function 'int main()':
diversity.cpp:36:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for (int k = 0; k < cnd.size(); ++k) {
      |                     ~~^~~~~~~~~~~~
#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...