#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ll n, m, r,lo, hi,can, mid, x, y, i, j, ans, t;
cin >> n;
ll ind[n + 2], b[n + 2], a[n + 2], cnt[n + 2];
for (i = 1; i <= n; i ++) {
cnt[i] = 0;
}
ans = 0;
for (i = 1; i <= n; i ++) {
cin >> ind[i];
if ( cnt[ind[i]] == 1) {
ans = 1;
}
cnt[ind[i]] = 1;
}
for (i = 1; i <= n; i ++) cin >> b[i];
for (i = 1; i <= n; i ++) cin >> a[i];
if ( ans == 0) {
ans = 0;
for (i = 1; i <= n; i ++) {
if ( a[i] > b[ind[i]]) ans ++;
}
cout << ans << endl;
return 0;
}
sort(a + 1, a + n + 1);
sort (b + 1, b + n + 1);
lo = 0;
hi = n + 1;
while ( lo < hi) {
mid = (lo + hi)/2;
can = 1;
for (i = 1; i <= mid; i++) {
if ( a[n + 1 - i] < b[mid + 1 - i]) can =0 ;
}
if ( can == 1) lo =mid + 1;
else hi = mid;
}
cout << lo - 1 << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |