제출 #793853

#제출 시각아이디문제언어결과실행 시간메모리
79385312345678Pilot (NOI19_pilot)C++17
40 / 100
1077 ms30468 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=1e6+5;
int n, q, h[nx], dp[nx], t;
vector<vector<int>> d(nx);

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>q;
    for (int i=1; i<=n; i++) cin>>h[i], d[h[i]].push_back(i);
    for (int i=1; i<nx; i++)
    {
        dp[i]=dp[i-1];
        sort(d[i].begin(), d[i].end());
        for (auto x:d[i])
        {
            int l=1, r=n;
            for (int j=x-1; j>=1; j--) 
            {
                if (h[j]>i) 
                {
                    l=j+1; 
                    break;
                }
            }
            for (int j=x+1; j<=n; j++)
            {
                if (h[j]>=i)
                {
                    r=j-1;
                    break;
                }
            }
            dp[i]+=(x-l+1)*(r-x+1);
        }
    }
    while (q--) cin>>t, cout<<dp[t]<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...