Submission #72171

#TimeUsernameProblemLanguageResultExecution timeMemory
72171신딩없는 신딩팀 (#118)Box Run (FXCUP3_box)C++17
100 / 100
170 ms7448 KiB
#include<bits/stdc++.h> using namespace std; int N,H[500005],dp[500005]; vector<pair<int,int> >stk; int main(){ scanf("%d",&N); for(int i=1;i<=N;i++) scanf("%d",H+i); stk.push_back({0,2e9}); fill(dp,dp+N+1,2e9); for(int i=1;i<=N;i++){ pair<int,int> cur={i,H[i]}; while(cur.second>stk.back().second)stk.pop_back(); int k=i-stk.back().first-1; dp[k]=min(dp[k],i); stk.push_back(cur); } for(int i=N-1;i;i--) dp[i]=min(dp[i+1],dp[i]); for(int i=1;i<=N;i++) printf("%d ",dp[i]==2e9?-1:dp[i]-i); return 0; }

Compilation message (stderr)

box.cpp: In function 'int main()':
box.cpp:6:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&N);
     ~~~~~^~~~~~~~~
box.cpp:8:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",H+i);
         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...