253022026-02-19 08:36:00KevinTiltott pár (45 pont)cpp17Time limit exceeded 37/45699ms9336 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n; cin >> n;
    map<ll, vector<ll>> mp;
    for (ll i=0; i<n; i++){
        ll x; cin >> x;
        if (mp.find(x)==mp.end()) mp[x]={};
        mp[x].push_back(i);
    }
    ll q; cin >> q;
    map<pll, ll> answer;
    while (q--){
        ll x, y; cin >> y >> x;
        if (answer.find({x, y})!=answer.end()){
            cout << answer[{x, y}] << "\n";
            continue;
        }
        if (mp.find(x)==mp.end()){
            cout << "0\n";
            continue;
        }
        if (mp.find(y)==mp.end()){
            cout << "0\n";
            continue;
        }
        ll out=0;
        vector<ll> a=mp[x], b=mp[y];
        ll r=a.size()-1, l=0;
        while (r>=0 && l<=b.size()-1 && a[r]>b[l]){
            r--; l++; out++;
        }
        answer[{x, y}]=out;
        cout << out << '\n';
    }
}
SubtaskSumTestVerdictTimeMemory
base37/45
1Accepted0/01ms500 KiB
2Accepted0/02ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms376 KiB
7Accepted2/23ms472 KiB
8Accepted2/22ms548 KiB
9Accepted3/32ms316 KiB
10Time limit exceeded0/2699ms7132 KiB
11Time limit exceeded0/2699ms7176 KiB
12Time limit exceeded0/2699ms7692 KiB
13Time limit exceeded0/2699ms7132 KiB
14Accepted3/3488ms9232 KiB
15Accepted3/3462ms9336 KiB
16Accepted2/2344ms7924 KiB
17Accepted2/2495ms9048 KiB
18Accepted2/2465ms8980 KiB
19Accepted2/2108ms4372 KiB
20Accepted2/245ms3148 KiB
21Accepted2/243ms3092 KiB
22Accepted2/243ms3092 KiB
23Accepted2/243ms3052 KiB