This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// Author : FatihCihan
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(v) v.begin() , v.end()
#define sz(a) (int)a.size()
void solve(){
int n,k,query;
cin >> n >> k >> query;
int p[n] , q[n] , pos[n];
for(int i = 0;i<n;i++){
cin >> p[i];
p[i]--;
}
for(int i = 0;i<n;i++){
cin >> q[i];
q[i]--;
pos[q[i]] = i;
}
map < int , int > mpa;
auto calc = [&](int ind , bool typ){// ans for the segment [ind , ind + k - 1]
// cout << "calc : " << ind << " , " << typ << endl;
vector < int > v;
for(int i = ind;i<=ind+k-1;i++){
v.push_back(pos[p[i]]);
}
sort(all(v));
// cout << "ind : " << ind << endl;
// cout << "v : ";for(auto itr : v)cout << itr << " ";cout << endl;
int rp = 0;
for(int i = 0;i<sz(v);i++){
while(rp < sz(v) and (v[rp] - v[i]) < k)rp++;
int lb = max(0ll , v[rp-1] - k + 1);
int ub = min(n - k , v[i]);
mpa[rp - i] += (typ ? 1 : -1) * (ub - lb + 1);
// cout << rp - i << " : " << (ub - lb + 1) << " , " << typ << endl;
}
};
auto answer = [&]{
while((*(--mpa.end())).second == 0)mpa.erase(--mpa.end());
cout << (*(--mpa.end())).first << " " << (*(--mpa.end())).second << '\n';
};
for(int i = 0;i<n-k+1;i++){
calc(i , 1);
}
answer();
while(query--){
int ti;
cin >> ti;
ti--;
if((ti - k + 1) >= 0)calc(ti - k + 1 , 0);
if((ti + 1) <= (n-k))calc(ti + 1 , 0);
swap(p[ti] , p[ti + 1]);
if((ti - k + 1) >= 0)calc(ti - k + 1 , 1);
if((ti + 1) <= (n-k))calc(ti + 1 , 1);
answer();
}
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int testcase = 1;//cin >> testcase;
while(testcase--)solve();
cerr << 1000.0 * clock() / CLOCKS_PER_SEC << " ms" << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |