10040 | 2024-03-25 18:38:07 | 111 | Növekvő Ödön és a Másoló Varázsló | cpp17 | Elfogadva 100/100 | 230ms | 21052 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 999999
int N,M;
int F[1000000];
void add(int i,int x){
for(i++;i<1000000;i+=i&-i){
F[i]+=x;
}
}
void add(int i,int j,int x){
add(i,x);
add(j+1,-x);
}
int get(int i){
int x=0;
for(i++;i;i-=i&-i){
x+=F[i];
}
return x;
}
void sset(int i,int x){
add(i,i,x-get(i));
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>N>>M;
vector<int>v(N+1),w(M),u(N+1);
for(int i=1;i<=N;i++){
cin>>v[i];
}
for(int i=0;i<M;i++){
cin>>w[i];
}
sort(w.begin(),w.end());
for(int i=1;i<=N;i++){
u[i]=upper_bound(w.begin(),w.end(),v[i])-w.begin();
}
int a=0,l=0,h=500000;
add(0,h-1,INF);
h++;
for(int i=1;i<=N;i++){
int aa=INF;
int j=u[i]-1;
if(j>=l){
aa=min(aa,get(h+j));
}
h--;
if(w[l]>v[i-1]&&a<INF){
sset(h+l,get(h+l+1));
}
else{
l++;
}
int ll=u[i-1],hh=M;
while(ll<hh){
int mm=(ll+hh)/2;
if(get(h+mm)<=a){
hh=mm;
}
else{
ll=mm+1;
}
}
add(h+l,h+u[i-1]-1,1);
if(a+1<get(h+u[i-1])){
sset(h+u[i-1],a+1);
}
add(h+ll,h+M-1,1);
if(v[i]>v[i-1]){
aa=min(aa,a);
}
a=aa;
}
for(int i=l;i<M;i++){
a=min(a,get(h+i));
}
cout<<a<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 2172 KiB | ||||
2 | Elfogadva | 52ms | 6160 KiB | ||||
subtask2 | 5/5 | ||||||
3 | Elfogadva | 54ms | 5788 KiB | ||||
4 | Elfogadva | 54ms | 5936 KiB | ||||
5 | Elfogadva | 54ms | 6160 KiB | ||||
subtask3 | 10/10 | ||||||
6 | Elfogadva | 3ms | 3396 KiB | ||||
7 | Elfogadva | 3ms | 3220 KiB | ||||
8 | Elfogadva | 3ms | 3092 KiB | ||||
subtask4 | 15/15 | ||||||
9 | Elfogadva | 3ms | 3364 KiB | ||||
10 | Elfogadva | 3ms | 3308 KiB | ||||
11 | Elfogadva | 3ms | 3308 KiB | ||||
12 | Elfogadva | 3ms | 3464 KiB | ||||
subtask5 | 5/5 | ||||||
13 | Elfogadva | 6ms | 4180 KiB | ||||
14 | Elfogadva | 6ms | 4048 KiB | ||||
15 | Elfogadva | 6ms | 4188 KiB | ||||
subtask6 | 5/5 | ||||||
16 | Elfogadva | 6ms | 4388 KiB | ||||
17 | Elfogadva | 4ms | 4424 KiB | ||||
18 | Elfogadva | 6ms | 4504 KiB | ||||
19 | Elfogadva | 4ms | 4388 KiB | ||||
subtask7 | 10/10 | ||||||
20 | Elfogadva | 7ms | 4420 KiB | ||||
21 | Elfogadva | 7ms | 4420 KiB | ||||
22 | Elfogadva | 7ms | 4552 KiB | ||||
23 | Elfogadva | 4ms | 4636 KiB | ||||
24 | Elfogadva | 7ms | 4996 KiB | ||||
subtask8 | 25/25 | ||||||
25 | Elfogadva | 94ms | 12592 KiB | ||||
26 | Elfogadva | 94ms | 12536 KiB | ||||
27 | Elfogadva | 94ms | 12536 KiB | ||||
28 | Elfogadva | 3ms | 4832 KiB | ||||
29 | Elfogadva | 109ms | 12632 KiB | ||||
30 | Elfogadva | 93ms | 11280 KiB | ||||
31 | Elfogadva | 94ms | 12176 KiB | ||||
32 | Elfogadva | 96ms | 12684 KiB | ||||
33 | Elfogadva | 100ms | 12652 KiB | ||||
34 | Elfogadva | 98ms | 12704 KiB | ||||
35 | Elfogadva | 101ms | 12652 KiB | ||||
36 | Elfogadva | 94ms | 12008 KiB | ||||
37 | Elfogadva | 96ms | 12632 KiB | ||||
38 | Elfogadva | 98ms | 12720 KiB | ||||
39 | Elfogadva | 109ms | 12964 KiB | ||||
40 | Elfogadva | 97ms | 13012 KiB | ||||
41 | Elfogadva | 100ms | 13016 KiB | ||||
42 | Elfogadva | 54ms | 9580 KiB | ||||
43 | Elfogadva | 94ms | 11848 KiB | ||||
44 | Elfogadva | 96ms | 12820 KiB | ||||
45 | Elfogadva | 97ms | 13000 KiB | ||||
subtask9 | 25/25 | ||||||
46 | Elfogadva | 196ms | 20520 KiB | ||||
47 | Elfogadva | 201ms | 20808 KiB | ||||
48 | Elfogadva | 194ms | 19248 KiB | ||||
49 | Elfogadva | 229ms | 21052 KiB | ||||
50 | Elfogadva | 229ms | 21024 KiB | ||||
51 | Elfogadva | 230ms | 20936 KiB | ||||
52 | Elfogadva | 165ms | 18504 KiB | ||||
53 | Elfogadva | 184ms | 19784 KiB | ||||
54 | Elfogadva | 201ms | 20824 KiB | ||||
55 | Elfogadva | 194ms | 20856 KiB |