Submission #1093582

#TimeUsernameProblemLanguageResultExecution timeMemory
1093582LuvidiSličnost (COI23_slicnost)C++17
24 / 100
3069 ms3420 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pll pair<ll, ll>
#define pii pair<int, int>
#define fs first
#define sc second
#define pb push_back

const int maxn=1e5;
int n,k,q,a[maxn],b[maxn],idx[maxn];
ll seg[maxn];

void upd(int i,int x){
    i=idx[a[i]];
    for(int j=max(0,i-(k-1));j<=min(i,n-k);j++){
        seg[j]+=x;
    }
}

void calc(){
    memset(seg,0,sizeof(seg));
    pll ans={0,0};
    for(int i=0;i<k-1;i++){
        upd(i,1);
    }
    for(int i=0;i<=n-k;i++){
        upd(i+k-1,1);
        for(int j=0;j<=n-k;j++){
            if(seg[j]>ans.fs)ans={seg[j],1};
            else if(seg[j]==ans.fs)ans.sc++;
        }
        upd(i,-1);
    }
    cout<<ans.fs<<' '<<ans.sc<<'\n';
}

void solve(){
    cin>>n>>k>>q;
    for(int i=0;i<n;i++){
        cin>>a[i];
        a[i]--;
    }
    for(int i=0;i<n;i++){
        cin>>b[i];;
        idx[--b[i]]=i;
    }
    calc();
    while(q--){
        int idx;
        cin>>idx;
        swap(a[idx],a[idx-1]);
        calc();
    }
}

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...