/*input
*/
#include<bits/stdc++.h>
using namespace std;
const int N=1e6 + 1099;
const int mod=1e9 + 7;
#define pii pair<int, int>
#define f first
#define s second
#define mp make_pair
int n;map<int, int> conv;
multiset<int> positions[N];
class tree
{
int tree[4*N], lazy[4*N], ql, qr, val;
void prop(int i, int l, int r)
{
tree[i]+=lazy[i];
if(l!=r)
{
lazy[2*i]+=lazy[i];lazy[2*i+1]+=lazy[i];
}
lazy[i]=0;
}
void update(int i=1, int l=1, int r=N-1)
{
prop(i, l, r);
if(l>qr||r<ql) return;
if(l>=ql&&r<=qr)
{
lazy[i]+=val;prop(i, l, r);
return;
}
int mid=(l+r)>>1;update(2*i, l, mid);update(2*i+1, mid+1, r);tree[i]=max(tree[2*i], tree[2*i+1]);
}
public:
void remove(int ind, int el)
{
int prevmax=(*positions[el].rbegin());
positions[el].erase(ind);
if(!positions[el].empty()) prevmax=(*positions[el].rbegin()) - prevmax;
else prevmax*=-1;
ql=qr=el;val=prevmax;
if(val!=0) update();
ql=el+1;qr=N-1;val=+1;update();
}
void add(int ind, int el)
{
int prevmax=0;
if(!positions[el].empty()) prevmax=(*positions[el].rbegin());
positions[el].insert(ind);
prevmax=(*positions[el].rbegin() - prevmax);
ql=qr=el;val=prevmax;
if(val!=0) update();
ql=el+1;qr=N-1;val=-1;update();
}
int qry()
{
return tree[1];
}
};
tree Segtree;
vector<int> countScans(vector<int> arr, vector<int> pos, vector<int> nval)
{
n=arr.size();int q=pos.size();vector<int> ans;
conv.clear();
for(auto i:arr) conv[i]=0;
for(auto i:nval) conv[i]=0;
int curv=1;
for(auto &i:conv) i.s=curv++;
for(int i=0;i<n;i++) {arr[i]=conv[arr[i]];Segtree.add(i, arr[i]);}
for(auto &i:nval) i=conv[i];
// cout<<Segtree.qry()<<endl;
for(int i=0;i<q;i++)
{
Segtree.remove(pos[i], arr[pos[i]]);
Segtree.add(pos[i], nval[i]);arr[pos[i]]=nval[i];
ans.push_back(Segtree.qry());
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
52 ms |
47864 KB |
Output is correct |
2 |
Correct |
50 ms |
47648 KB |
Output is correct |
3 |
Correct |
53 ms |
47864 KB |
Output is correct |
4 |
Correct |
53 ms |
47864 KB |
Output is correct |
5 |
Correct |
53 ms |
47992 KB |
Output is correct |
6 |
Correct |
52 ms |
47856 KB |
Output is correct |
7 |
Correct |
53 ms |
47992 KB |
Output is correct |
8 |
Correct |
52 ms |
47992 KB |
Output is correct |
9 |
Correct |
53 ms |
47864 KB |
Output is correct |
10 |
Correct |
53 ms |
47864 KB |
Output is correct |
11 |
Correct |
52 ms |
47864 KB |
Output is correct |
12 |
Correct |
60 ms |
47992 KB |
Output is correct |
13 |
Correct |
52 ms |
47992 KB |
Output is correct |
14 |
Correct |
52 ms |
47944 KB |
Output is correct |
15 |
Correct |
52 ms |
47864 KB |
Output is correct |
16 |
Correct |
53 ms |
47864 KB |
Output is correct |
17 |
Correct |
52 ms |
47864 KB |
Output is correct |
18 |
Correct |
52 ms |
47864 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
52 ms |
47864 KB |
Output is correct |
2 |
Correct |
50 ms |
47648 KB |
Output is correct |
3 |
Correct |
53 ms |
47864 KB |
Output is correct |
4 |
Correct |
53 ms |
47864 KB |
Output is correct |
5 |
Correct |
53 ms |
47992 KB |
Output is correct |
6 |
Correct |
52 ms |
47856 KB |
Output is correct |
7 |
Correct |
53 ms |
47992 KB |
Output is correct |
8 |
Correct |
52 ms |
47992 KB |
Output is correct |
9 |
Correct |
53 ms |
47864 KB |
Output is correct |
10 |
Correct |
53 ms |
47864 KB |
Output is correct |
11 |
Correct |
52 ms |
47864 KB |
Output is correct |
12 |
Correct |
60 ms |
47992 KB |
Output is correct |
13 |
Correct |
52 ms |
47992 KB |
Output is correct |
14 |
Correct |
52 ms |
47944 KB |
Output is correct |
15 |
Correct |
52 ms |
47864 KB |
Output is correct |
16 |
Correct |
53 ms |
47864 KB |
Output is correct |
17 |
Correct |
52 ms |
47864 KB |
Output is correct |
18 |
Correct |
52 ms |
47864 KB |
Output is correct |
19 |
Correct |
74 ms |
49148 KB |
Output is correct |
20 |
Correct |
79 ms |
49400 KB |
Output is correct |
21 |
Correct |
76 ms |
49404 KB |
Output is correct |
22 |
Correct |
78 ms |
49376 KB |
Output is correct |
23 |
Correct |
74 ms |
49272 KB |
Output is correct |
24 |
Correct |
75 ms |
49196 KB |
Output is correct |
25 |
Correct |
74 ms |
49144 KB |
Output is correct |
26 |
Correct |
73 ms |
49144 KB |
Output is correct |
27 |
Correct |
73 ms |
48984 KB |
Output is correct |
28 |
Correct |
73 ms |
48988 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
79 ms |
49144 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
52 ms |
47864 KB |
Output is correct |
2 |
Correct |
50 ms |
47648 KB |
Output is correct |
3 |
Correct |
53 ms |
47864 KB |
Output is correct |
4 |
Correct |
53 ms |
47864 KB |
Output is correct |
5 |
Correct |
53 ms |
47992 KB |
Output is correct |
6 |
Correct |
52 ms |
47856 KB |
Output is correct |
7 |
Correct |
53 ms |
47992 KB |
Output is correct |
8 |
Correct |
52 ms |
47992 KB |
Output is correct |
9 |
Correct |
53 ms |
47864 KB |
Output is correct |
10 |
Correct |
53 ms |
47864 KB |
Output is correct |
11 |
Correct |
52 ms |
47864 KB |
Output is correct |
12 |
Correct |
60 ms |
47992 KB |
Output is correct |
13 |
Correct |
52 ms |
47992 KB |
Output is correct |
14 |
Correct |
52 ms |
47944 KB |
Output is correct |
15 |
Correct |
52 ms |
47864 KB |
Output is correct |
16 |
Correct |
53 ms |
47864 KB |
Output is correct |
17 |
Correct |
52 ms |
47864 KB |
Output is correct |
18 |
Correct |
52 ms |
47864 KB |
Output is correct |
19 |
Correct |
74 ms |
49148 KB |
Output is correct |
20 |
Correct |
79 ms |
49400 KB |
Output is correct |
21 |
Correct |
76 ms |
49404 KB |
Output is correct |
22 |
Correct |
78 ms |
49376 KB |
Output is correct |
23 |
Correct |
74 ms |
49272 KB |
Output is correct |
24 |
Correct |
75 ms |
49196 KB |
Output is correct |
25 |
Correct |
74 ms |
49144 KB |
Output is correct |
26 |
Correct |
73 ms |
49144 KB |
Output is correct |
27 |
Correct |
73 ms |
48984 KB |
Output is correct |
28 |
Correct |
73 ms |
48988 KB |
Output is correct |
29 |
Incorrect |
79 ms |
49144 KB |
Output isn't correct |
30 |
Halted |
0 ms |
0 KB |
- |