166172025-05-06 21:03:56algoproTornyokcpp17Elfogadva 100/100212ms20632 KiB
// UUID: 3c7a220d-277d-487a-9c0c-07ef0846afc5
#include <bits/stdc++.h>
using namespace std;

int main() {

	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n, q;
	cin >> n >> q;
	vector<int> sor(n), lis(n, INT_MAX), eloz(n, -1), st, lis_in_pos(n, 0);

	for (int i = 0; i < n; i++){
		cin >> sor[i];
		while(!st.empty() && sor[st.back()] < sor[i]) st.pop_back();
		if (!st.empty()) eloz[i] = st.back();
		st.push_back(i);
	}

	for (int i = n - 1; i >= 0; i--){
		if (eloz[i] != -1) lis_in_pos[eloz[i]] = max(lis_in_pos[eloz[i]], lis_in_pos[i] + 1);
		lis[lis_in_pos[i]] = min(lis[lis_in_pos[i]], sor[i]);
	}

	for (int i = 0; i < q; i++){
		int a;
		cin >> a;
		cout << lower_bound(lis.begin(), lis.end(), a) - lis.begin() << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms508 KiB
2Elfogadva0/0178ms13764 KiB
3Elfogadva2/21ms500 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva6/61ms316 KiB
6Elfogadva6/61ms316 KiB
7Elfogadva4/410ms1372 KiB
8Elfogadva4/417ms2032 KiB
9Elfogadva8/857ms6512 KiB
10Elfogadva8/887ms11772 KiB
11Elfogadva5/5151ms13620 KiB
12Elfogadva5/5187ms16096 KiB
13Elfogadva5/529ms3124 KiB
14Elfogadva5/564ms7856 KiB
15Elfogadva5/5101ms11948 KiB
16Elfogadva5/5143ms11380 KiB
17Elfogadva5/5178ms13872 KiB
18Elfogadva5/5207ms16344 KiB
19Elfogadva5/5212ms16428 KiB
20Elfogadva5/5186ms20140 KiB
21Elfogadva5/5194ms20148 KiB
22Elfogadva5/5177ms20632 KiB