#include <bits/stdc++.h>
using namespace std;
const int c=5005, c2=100005;
int n, a[c2], b[c2];
int kov[c2], el[c2], lis[c2], si;
map<int, int> inv;
int main() {
ios_base::sync_with_stdio(false);
cin >> n;
if (true) {
bool kul=1;
for (int i=1; i<=n; i++) {
cin >> a[i];
if (!inv[a[i]]) inv[a[i]]=i;
else kul=0;
}
for (int i=1; i<=n; i++) {
cin >> b[i];
}
if (!kul) {
for (int i=1; i<=n; i++) {
if (a[i]==b[i]) {
for (int j=i; j>1; j--) {
if (a[j]>a[j-1]) {
a[j-1]=a[j];
} else {
break;
}
}
if (i<n) a[i+1]=max(a[i], a[i+1]);
}
}
int cnt=0;
for (int i=1; i<=n; i++) {
if (a[i]==b[i]) {
cnt++;
}
}
cout << cnt << "\n";
return 0;
}
vector<int> sor;
sor.push_back(0);
for (int i=1; i<=n; i++) {
while (sor.back()>0 && a[i]>a[sor.back()]) {
kov[sor.back()]=i;
sor.pop_back();
}
el[i]=sor.back();
sor.push_back(i);
}
while (sor.back()>0) {
kov[sor.back()]=n+1;
sor.pop_back();
}
for (int i=1; i<=n; i++) {
int s=inv[b[i]];
if (s && el[s]<i && i<kov[s]) {
int lo=0, hi=si+1, mid;
while (hi-lo>1) {
mid=(hi+lo)/2;
if (lis[mid]>s) {
hi=mid;
} else {
lo=mid;
}
}
si=max(si, hi);
lis[hi]=s;
}
}
cout << si << "\n";
return 0;
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/14 | ||||||
| 1 | Elfogadva | 1ms | 508 KiB | ||||
| 2 | Elfogadva | 1ms | 332 KiB | ||||
| 3 | Hibás válasz | 1ms | 316 KiB | ||||
| 4 | Hibás válasz | 1ms | 316 KiB | ||||
| 5 | Hibás válasz | 1ms | 316 KiB | ||||
| 6 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 12/12 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 8ms | 564 KiB | ||||
| 3 | Elfogadva | 71ms | 7536 KiB | ||||
| 4 | Elfogadva | 18ms | 1540 KiB | ||||
| 5 | Elfogadva | 93ms | 7468 KiB | ||||
| 6 | Elfogadva | 20ms | 1336 KiB | ||||
| 7 | Elfogadva | 24ms | 1632 KiB | ||||
| 8 | Elfogadva | 78ms | 5788 KiB | ||||
| subtask3 | 13/13 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 2ms | 316 KiB | ||||
| 3 | Elfogadva | 3ms | 496 KiB | ||||
| 4 | Elfogadva | 4ms | 564 KiB | ||||
| 5 | Elfogadva | 4ms | 564 KiB | ||||
| 6 | Elfogadva | 4ms | 564 KiB | ||||
| subtask4 | 23/23 | ||||||
| 1 | Elfogadva | 6ms | 568 KiB | ||||
| 2 | Elfogadva | 45ms | 3280 KiB | ||||
| 3 | Elfogadva | 122ms | 7628 KiB | ||||
| 4 | Elfogadva | 128ms | 8376 KiB | ||||
| 5 | Elfogadva | 116ms | 8876 KiB | ||||
| 6 | Elfogadva | 100ms | 7856 KiB | ||||
| 7 | Elfogadva | 115ms | 8652 KiB | ||||
| 8 | Elfogadva | 118ms | 7732 KiB | ||||
| 9 | Elfogadva | 128ms | 7732 KiB | ||||
| 10 | Elfogadva | 81ms | 8120 KiB | ||||
| subtask5 | 0/16 | ||||||
| 1 | Elfogadva | 1ms | 500 KiB | ||||
| 2 | Hibás válasz | 1ms | 508 KiB | ||||
| 3 | Hibás válasz | 1ms | 316 KiB | ||||
| 4 | Hibás válasz | 1ms | 316 KiB | ||||
| 5 | Hibás válasz | 1ms | 316 KiB | ||||
| 6 | Hibás válasz | 1ms | 500 KiB | ||||
| 7 | Hibás válasz | 1ms | 556 KiB | ||||
| 8 | Hibás válasz | 1ms | 316 KiB | ||||
| subtask6 | 0/22 | ||||||
| 1 | Hibás válasz | 1ms | 320 KiB | ||||
| 2 | Hibás válasz | 1ms | 316 KiB | ||||
| 3 | Elfogadva | 3ms | 452 KiB | ||||
| 4 | Hibás válasz | 3ms | 316 KiB | ||||
| 5 | Hibás válasz | 3ms | 316 KiB | ||||
| 6 | Hibás válasz | 2ms | 316 KiB | ||||
| 7 | Hibás válasz | 2ms | 316 KiB | ||||
| 8 | Hibás válasz | 4ms | 564 KiB | ||||
| 9 | Hibás válasz | 3ms | 564 KiB | ||||
| 10 | Hibás válasz | 3ms | 568 KiB | ||||
| 11 | Hibás válasz | 3ms | 568 KiB | ||||
| 12 | Hibás válasz | 3ms | 612 KiB | ||||