第 15 个点 WA , 求调 。
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, a[1000000], b[1000000];
int f[1000000];
int cn;
int k[1000000];
signed main(){
cin >> n >> m;
for(int i = 1; i <= n; i++){
f[i] = LONG_LONG_MAX;
cin >> a[i];
}
for(int j = 1; j <= m; j++){
cin >> b[j];
}
for(int j = 1; j < m; j++){
if(a[b[j + 1]] - a[b[j]] < b[j + 1] - b[j]){
cout << -1 << endl;
return 0;
}
}
for(int i = 1; i <= n; i++){
a[i] -= i;
}
for(int i = 1; i <= n; i++){
int j = cn;
if(a[i] >= k[j]){
cn++;
k[cn] = a[i];
continue;
}
for(; j >= 1; j--){
if(a[i] < k[j]) continue;
else break;
}
j++;
k[j] = a[i];
}
cout << n - cn << endl;
return 0;
}