167152025-05-10 02:21:44peti1234Tornyokcpp17Elfogadva 100/100187ms13232 KiB
#include <bits/stdc++.h>
using namespace std;
const int c=1000005, sok=2e9;
int n, q, t[c], len[c], opt[c];
vector<int> sor;
int main() {
	ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> q;
    for (int i=1; i<=n; i++) {
        cin >> t[i];
        opt[i]=sok;
    }
    for (int i=n; i>=1; i--) {
        while (sor.size()>0 && t[i]>t[sor.back()]) {
            len[i]=max(len[i], len[sor.back()]);
            sor.pop_back();
        }
        sor.push_back(i);
        len[i]++;
        opt[len[i]]=min(opt[len[i]], t[i]);
    }

    while (q--) {
        int val;
        cin >> val;
        int lo=0, hi=n+1, mid;
        while (hi-lo>1) {
            mid=(hi+lo)/2;
            if (val>opt[mid]) {
                lo=mid;
            } else {
                hi=mid;
            }
        }
        cout << lo << " ";
    }
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms320 KiB
2Elfogadva0/0153ms10552 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva6/61ms316 KiB
6Elfogadva6/61ms316 KiB
7Elfogadva4/48ms1040 KiB
8Elfogadva4/416ms1432 KiB
9Elfogadva8/852ms6044 KiB
10Elfogadva8/875ms7368 KiB
11Elfogadva5/5133ms10292 KiB
12Elfogadva5/5159ms12040 KiB
13Elfogadva5/528ms2436 KiB
14Elfogadva5/557ms5224 KiB
15Elfogadva5/589ms7692 KiB
16Elfogadva5/5126ms8756 KiB
17Elfogadva5/5156ms10548 KiB
18Elfogadva5/5181ms12444 KiB
19Elfogadva5/5187ms12308 KiB
20Elfogadva5/5165ms13228 KiB
21Elfogadva5/5173ms13232 KiB
22Elfogadva5/5158ms12596 KiB