调,一关
查看原帖
调,一关
511520
drmr楼主2023/7/6 20:15

第 1515 个点 WAWA , 求调 。

#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;
}
2023/7/6 20:15
加载中...