258042026-03-03 16:47:05anonTiltott pár (45 pont)cpp17Időlimit túllépés 37/45675ms4524 KiB
#include <bits/stdc++.h>
#define sz(x) ((ll) (x).size())
#define all(x) (x).begin(), (x).end()
#define FastIO ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
using namespace std;
typedef long long ll;
int main() {
    FastIO;
    ll N;
    cin>>N;
    vector<ll>A(N);
    for(auto &x:A)
        cin>>x;
    map<ll,vector<ll>>m;
    for(ll i=0;i<N;i++)
        m[A[i]].push_back(i);
    ll Q;
    cin>>Q;
    while(Q--){
        ll X,Y;
        cin>>Y>>X;
        ll xlo=0;
        ll xhi=sz(m[X]);
        ll xc=xhi;
        if(!xc){
            cout<<"0\n";
            continue;
        }
        ll ylo=0;
        ll yhi=sz(m[Y]);
        ll lo=0;
        ll hi=N;
        while(lo+1<hi){
            ll mid=(lo+hi)>>1;
            ll c1=upper_bound(m[X].begin()+xlo,m[X].begin()+xhi,mid)-m[X].begin();
            ll c2=upper_bound(m[Y].begin()+ylo,m[Y].begin()+yhi,mid)-m[Y].begin();
            if(c1+c2<=xc){
                lo=mid;
                xlo=c1;
                ylo=c2;
            }
            else{
                hi=mid;
                xhi=c1;
                yhi=c2;
            }
        }
        ll ans=upper_bound(all(m[Y]),lo)-m[Y].begin();
        cout<<ans<<'\n';
    }
    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base37/45
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms512 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/22ms316 KiB
6Elfogadva2/22ms316 KiB
7Elfogadva2/24ms512 KiB
8Elfogadva2/24ms316 KiB
9Elfogadva3/34ms316 KiB
10Időlimit túllépés0/2625ms3892 KiB
11Elfogadva2/2596ms3696 KiB
12Időlimit túllépés0/2662ms4524 KiB
13Időlimit túllépés0/2617ms4216 KiB
14Elfogadva3/3559ms2476 KiB
15Elfogadva3/3556ms2340 KiB
16Időlimit túllépés0/2675ms2656 KiB
17Elfogadva2/2541ms2512 KiB
18Elfogadva2/2527ms2344 KiB
19Elfogadva2/2291ms1584 KiB
20Elfogadva2/2157ms2556 KiB
21Elfogadva2/2143ms2608 KiB
22Elfogadva2/2165ms2660 KiB
23Elfogadva2/2158ms2624 KiB