Submission details
Task:Kyselyt
Sender:ollpu
Submission time:2025-10-19 23:19:11 +0300
Language:C++ (C++20)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:22:9: error: conflicting declaration 'int l [q]'
   22 |     int l[q], g[q][K];
      |         ^
input/code.cpp:15:9: note: previous declaration as 'int l'
   15 |     int l = 0, cnt = 0;
      |         ^
input/code.cpp:23:9: error: conflicting declaration 'int cnt [q][24]'
   23 |     int cnt[q][K] {};
      |         ^~~
input/code.cpp:15:16: note: previous declaration as 'int cnt'
   15 |     int l = 0, cnt = 0;
      |                ^~~
input/code.cpp:29:10: error: invalid types 'int[int]' for array subscript
   29 |         l[i] = b-a+1;
      |          ^
input/code.cpp:41:20: error: invalid types 'int[std::tuple_element<0, std::pair<int, int> >::type {aka int}]' for array subscript
   41 |                 cnt[qi][j] += c * z[g[qi][j]];
      |                    ^
input/code.cpp:48:20: error: invalid types 'int[int]' for array subscript
   48 |             if (cnt[i][j] > l[i]/2) res = x[g[i][j]];
      |...

Code

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, q;
    cin >> n >> q;
    int x[n], y[n];
    for (int i = 0; i < n; ++i) cin >> x[i];
    pair<int, int> m[n];
    for (int i = 0; i < n; ++i) {
        m[i] = {x[i], i};
    }
    sort(m, m+n);
    int l = 0, cnt = 0;
    for (auto [v, i] : m) {
        if (v != l) cnt++;
        y[i] = cnt;
        l = v;
    }
    const int K = 24;
    int l[q], g[q][K];
    int cnt[q][K] {};
    vector<pair<int, int>> ev[n];
    for (int i = 0; i < q; ++i) {
        int a, b;
        cin >> a >> b;
        a--; b--;
        l[i] = b-a+1;
        if (a) ev[a-1].push_back({i, -1});
        ev[b].push_back({i, 1});
        for (int j = 0; j < K; ++j) {
            g[i][j] = y[a+rand()%(b-a+1)];
        }
    }
    int z[n] {};
    for (int i = 0; i < n; ++i) {
        z[y[i]]++;
        for (auto [qi, c] : ev[i]) {
            for (int j = 0; j < K; ++j) {
                cnt[qi][j] += c * z[g[qi][j]];
            }
        }
    }
    for (int i = 0; i < q; ++i) {
        int res = -1;
        for (int j = 0; j < K; ++j) {
            if (cnt[i][j] > l[i]/2) res = x[g[i][j]];
        }
        cout << res << "\n";
    }
}