#include <bits/stdc++.h>
using namespace std;
const int c=5005, c2=100005;
int n, a[c], b[c];
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 | 316 KiB | ||||
| 2 | Elfogadva | 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 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 0/12 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Futási hiba | 2ms | 692 KiB | ||||
| 3 | Futási hiba | 3ms | 820 KiB | ||||
| 4 | Hibás válasz | 1ms | 316 KiB | ||||
| 5 | Futási hiba | 4ms | 1076 KiB | ||||
| 6 | Hibás válasz | 2ms | 316 KiB | ||||
| 7 | Hibás válasz | 1ms | 316 KiB | ||||
| 8 | Futási hiba | 4ms | 936 KiB | ||||
| subtask3 | 13/13 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| 3 | Elfogadva | 2ms | 564 KiB | ||||
| 4 | Elfogadva | 4ms | 564 KiB | ||||
| 5 | Elfogadva | 4ms | 800 KiB | ||||
| 6 | Elfogadva | 4ms | 796 KiB | ||||
| subtask4 | 0/23 | ||||||
| 1 | Elfogadva | 6ms | 820 KiB | ||||
| 2 | Futási hiba | 4ms | 952 KiB | ||||
| 3 | Futási hiba | 4ms | 820 KiB | ||||
| 4 | Futási hiba | 4ms | 1040 KiB | ||||
| 5 | Futási hiba | 3ms | 820 KiB | ||||
| 6 | Futási hiba | 3ms | 1012 KiB | ||||
| 7 | Futási hiba | 3ms | 1012 KiB | ||||
| 8 | Futási hiba | 4ms | 820 KiB | ||||
| 9 | Futási hiba | 4ms | 820 KiB | ||||
| 10 | Futási hiba | 3ms | 820 KiB | ||||
| subtask5 | 0/16 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Hibás válasz | 1ms | 508 KiB | ||||
| 3 | Hibás válasz | 1ms | 508 KiB | ||||
| 4 | Hibás válasz | 1ms | 508 KiB | ||||
| 5 | Hibás válasz | 1ms | 316 KiB | ||||
| 6 | Hibás válasz | 1ms | 316 KiB | ||||
| 7 | Hibás válasz | 1ms | 316 KiB | ||||
| 8 | Hibás válasz | 1ms | 316 KiB | ||||
| subtask6 | 0/22 | ||||||
| 1 | Hibás válasz | 1ms | 316 KiB | ||||
| 2 | Hibás válasz | 1ms | 748 KiB | ||||
| 3 | Elfogadva | 3ms | 544 KiB | ||||
| 4 | Hibás válasz | 3ms | 316 KiB | ||||
| 5 | Hibás válasz | 3ms | 548 KiB | ||||
| 6 | Hibás válasz | 2ms | 320 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 | 4ms | 684 KiB | ||||
| 11 | Hibás válasz | 3ms | 664 KiB | ||||
| 12 | Hibás válasz | 4ms | 652 KiB | ||||