253022026-02-19 08:36:00KevinTiltott pár (45 pont)cpp17Időlimit túllépés 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';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base37/45
1Elfogadva0/01ms500 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms376 KiB
7Elfogadva2/23ms472 KiB
8Elfogadva2/22ms548 KiB
9Elfogadva3/32ms316 KiB
10Időlimit túllépés0/2699ms7132 KiB
11Időlimit túllépés0/2699ms7176 KiB
12Időlimit túllépés0/2699ms7692 KiB
13Időlimit túllépés0/2699ms7132 KiB
14Elfogadva3/3488ms9232 KiB
15Elfogadva3/3462ms9336 KiB
16Elfogadva2/2344ms7924 KiB
17Elfogadva2/2495ms9048 KiB
18Elfogadva2/2465ms8980 KiB
19Elfogadva2/2108ms4372 KiB
20Elfogadva2/245ms3148 KiB
21Elfogadva2/243ms3092 KiB
22Elfogadva2/243ms3092 KiB
23Elfogadva2/243ms3052 KiB