| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1340855 | Nipphitch | Pilot (NOI19_pilot) | C++20 | 1098 ms | 104264 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+5;
int n,q,h[N],sum_now,ans[N];
set <int> pos,tmp;
vector <pair <int,int>> vec;
int cal(int x){
return x*(x+1)/2;
}
bool cmp(pair <int,int> x,pair <int,int> y){
if(x.first!=y.first) return x.first>y.first;
else return x.second<y.second;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
for(int i=1;i<=n;i++){
cin >> h[i];
vec.push_back({h[i],i});
}
sum_now=cal(n);
ans[N-1]=sum_now;
pos.insert(0);
pos.insert(n+1);
sort(vec.begin(),vec.end(),cmp);
vec.push_back({0,-1});
//ans[(*vec.begin()).first]=sum_now;
//tmp.insert((*vec.begin()).first);
int pv=-1;
for(auto [h_i,idx]:vec){
if(pv!=h_i) ans[h_i]=sum_now;
tmp.insert(h_i);
if(idx==-1) continue;
auto itr=pos.lower_bound(idx);
auto itl=prev(itr);
int l=*itl,r=*itr;
sum_now-=cal(r-l);
sum_now+=cal(idx-l)+cal(r-idx);
//cout << h_i << " : " << sum_now << "\n";
pos.insert(idx);
pv=h_i;
//ans[h_i-1]=sum_now;
//tmp.insert(h_i-1);
}
while(q--){
int x;
cin >> x;
cout << ans[*prev(tmp.upper_bound(x))] << "\n";
}
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
