Submission details
Task:Kyselyt
Sender:Lieska
Submission time:2025-10-17 22:19:36 +0300
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
Test results
testverdicttimegroup
#10.00 s1, 2, 3, 4details
#20.00 s1, 2, 3, 4details
#3ACCEPTED0.00 s1, 3, 4details
#4--2, 3, 4details
#5--2, 3, 4details
#6--2, 3, 4details
#7ACCEPTED0.41 s3, 4details
#8--4details
#9--4details
#10ACCEPTED0.87 s4details
#11--3, 4details
#12--4details
#13ACCEPTED0.49 s3, 4details
#14ACCEPTED0.97 s4details
#15--4details
#16--4details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:26:24: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |         if (s.count(u) >= sq) s1.insert(u);
      |             ~~~~~~~~~~~^~~~~

Code

#include <bits/stdc++.h>
using namespace std;
 
typedef long long ll;


int t[202020][500];
int x[202020];
int rev_map1[500];
map<int, int> m;
 
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, q;
    cin >> n >> q;
    int sq = 1;
    while (sq*sq < n) sq++;
    multiset<int> s;
    for (int i=1; i<=n; ++i){
        cin >> x[i];
        s.insert(x[i]);
    }
    set<int> s1;
    for (auto u:s){
        if (s.count(u) >= sq) s1.insert(u);
    }
    int c =1;
    for (auto u:s1){
        m[u] = c;
        rev_map1[c]= u;
        c++;
    }
    for (int i=1; i<=n; ++i){
        int d = m[x[i]];
        for (int j=1; j<=c; ++j){
            t[i][j] = t[i][j-1];
            if (d == j) t[i][j]++;
        }
    }
    for (int i=1; i<=q; ++i){
        int a, b;
        cin >> a >> b;
        if (b-a <= sq){
            vector<int> v;
            for (int j=a; j<=b; ++j){
                v.push_back(x[j]);
            }
            sort(v.begin(), v.end());
            int prev =0, cnt = 0, ma = 0, ma_ind = 0;
            for (int j=0; j<=b-a; ++j){
                if (v[j] != prev){
                    cnt = 1;
                    prev = v[j];
                }
                else {
                    cnt++;
                }
                if (cnt > ma){
                    ma = cnt;
                    ma_ind = v[j];
                }
            }
            if (ma*2 > b-a+1){
                cout << ma_ind << "\n";
            }
            else cout << "-1\n";
        }
        else {
            bool found = false;
            for (int j=1; j<=c; ++j){
                if ((t[b][j] - t[a-1][j])*2 > b-a+1 ){
                    cout << rev_map1[j] << "\n";
                    found = true;
                    break;
                }
            }
            if (found == false) cout << "-1\n";
        }
    }
}
 
 
 

Test details

Test 1

Group: 1, 2, 3, 4

Verdict:

input
100 100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1
1
1
1
1
...

user output
-1
-1
-1
1
1
...

Test 2

Group: 1, 2, 3, 4

Verdict:

input
100 100
2 1 2 2 1 2 2 2 1 2 2 1 1 1 1 ...

correct output
2
1
1
2
1
...

user output
2
-1
-1
2
1
...

Test 3

Group: 1, 3, 4

Verdict: ACCEPTED

input
100 100
5 19 44 88 14 79 50 44 14 99 7...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 4

Group: 2, 3, 4

Verdict:

input
100000 100000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1
1
1
1
1
...

user output
(empty)

Test 5

Group: 2, 3, 4

Verdict:

input
100000 100000
1 1 1 2 1 2 1 1 2 1 1 1 1 2 2 ...

correct output
1
1
2
1
1
...

user output
(empty)

Test 6

Group: 2, 3, 4

Verdict:

input
100000 100000
8 2 6 1 10 4 9 7 8 10 4 2 8 2 ...

correct output
-1
-1
-1
-1
-1
...

user output
(empty)

Test 7

Group: 3, 4

Verdict: ACCEPTED

input
100000 100000
141307 493258596 365539511 222...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 8

Group: 4

Verdict:

input
200000 200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1
1
1
1
1
...

user output
(empty)

Test 9

Group: 4

Verdict:

input
200000 200000
1 2 2 2 1 2 2 1 1 1 1 1 1 1 1 ...

correct output
2
2
2
2
2
...

user output
(empty)

Test 10

Group: 4

Verdict: ACCEPTED

input
200000 200000
286470749 280175209 741317063 ...

correct output
-1
-1
-1
-1
-1
...

user output
-1
-1
-1
-1
-1
...

Test 11

Group: 3, 4

Verdict:

input
100000 100000
613084013 1000000000 411999902...

correct output
-1
-1
-1
-1
1000000000
...

user output
(empty)

Test 12

Group: 4

Verdict:

input
200000 200000
613084013 1000000000 411999902...

correct output
1000000000
1000000000
-1
1000000000
-1
...

user output
(empty)

Test 13

Group: 3, 4

Verdict: ACCEPTED

input
100000 100000
663307073 663307073 663307073 ...

correct output
329574367
965067805
768744535
691214891
21873594
...

user output
329574367
965067805
768744535
691214891
21873594
...

Test 14

Group: 4

Verdict: ACCEPTED

input
200000 200000
663307073 663307073 663307073 ...

correct output
107596959
249558965
679275202
760593154
725418770
...

user output
107596959
249558965
679275202
760593154
725418770
...

Test 15

Group: 4

Verdict:

input
200000 200000
663307073 663307073 663307073 ...

correct output
211070558
49212342
651109313
264549124
651109313
...

user output
(empty)

Test 16

Group: 4

Verdict:

input
200000 200000
2 2 2 1 2 1 1 2 2 1 1 1 1 2 1 ...

correct output
1
2
1
1
1
...

user output
(empty)