165552025-05-06 18:04:56algoproTornyokcpp17Wrong answer 0/100404ms123444 KiB
// UUID: 1782bbbe-9ae3-4698-9135-29b56d113fb2
#include <bits/stdc++.h>
using namespace std;

int n, k;
vector<int> h, towerH;
vector<int> numLess;
vector<vector<int>> nbrs;

int calcLess(int Indx){
    if(0<=numLess[Indx]) return numLess[Indx];
    int ans=0;
    for(int x : nbrs[Indx]) ans=max(ans, calcLess(x)+1);
    return numLess[Indx]=ans;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n >> k;
    h.resize(n);
    for(int& x : h) cin >> x;
    towerH.resize(k);
    for(int& x : towerH) cin >> x;
    stack<int> stc;
    stc.push(0);
    nbrs.resize(n+1);
    for(int i=1;i<n;i++){
        while(!stc.empty() && h[stc.top()]<h[i]) stc.pop();
        nbrs[stc.empty()?n:stc.top()].push_back(i);
        stc.push(i);
    }
    numLess.resize(n+1, -1);
    calcLess(n);
    for(int i=0;i<n;i++) calcLess(i);
    vector<long long> sortedArr(n+k);
    for(int i=0;i<n;i++) sortedArr[i]=((long long)(h[i])<<32|i);
    for(int i=0;i<k;i++) sortedArr[n+i]=((long long)(towerH[i])<<32|n+i);
    sort(sortedArr.begin(), sortedArr.end());
    int bestSoFar=0;
    vector<int> ans(k);
    for(int i=0;i<n+k;i++){
        sortedArr[i]>>=32;
        if(n<=sortedArr[i]){
            ans[sortedArr[i]-n]=bestSoFar+1;
        }
        else{
            bestSoFar=max(bestSoFar, numLess[sortedArr[i]]);
        }
    }
    for(int x : ans) cout << x << ' ';
}
SubtaskSumTestVerdictTimeMemory
base0/100
1Wrong answer0/01ms316 KiB
2Runtime error0/0300ms48008 KiB
3Wrong answer0/21ms316 KiB
4Runtime error0/21ms316 KiB
5Runtime error0/61ms512 KiB
6Runtime error0/61ms316 KiB
7Runtime error0/417ms3684 KiB
8Runtime error0/427ms6452 KiB
9Runtime error0/881ms18860 KiB
10Runtime error0/8194ms63028 KiB
11Runtime error0/5307ms47156 KiB
12Runtime error0/5368ms55804 KiB
13Runtime error0/564ms13364 KiB
14Runtime error0/5140ms39220 KiB
15Runtime error0/5202ms63792 KiB
16Runtime error0/5246ms39680 KiB
17Runtime error0/5310ms48180 KiB
18Runtime error0/5356ms57140 KiB
19Runtime error0/5365ms57140 KiB
20Runtime error0/5384ms114996 KiB
21Runtime error0/5375ms115188 KiB
22Time limit exceeded0/5404ms123444 KiB