제출 #1093582

#제출 시각아이디문제언어결과실행 시간메모리
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...