# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
494231 | 2021-12-14T21:43:57 Z | emortly | Peru (RMI20_peru) | C++14 | 1 ms | 340 KB |
#include<bits/stdc++.h> using namespace std; struct q{ int end,a,dp; }; int solve(int n,int k,int* s){ int a[n+1]={}; for(int i=1;i<=n;i++)a[i]=s[i-1]; long long dp[n+1]={}; deque<q>d; multiset<long long>st; for(int i=1;i<=n;i++){ d.push_back(q{i+k,a[i],dp[i-1]}); st.insert({0ll+a[i]+dp[i-1]}); while(!d.empty()&&d.front().end<=i){ st.erase(st.find(0ll+d.front().a+d.front().dp)); d.pop_front(); } /*vector<q>vec; while(!d.empty()&&d.front().a<a[i]){ q dd=d.front(); d.pop_front(); st.erase(st.find(0ll+dd.a+dd.dp)); q ddd=q{dd.end,a[i],dd.dp}; st.insert(0ll+ddd.a+ddd.dp); vec.push_back(ddd); } reverse(vec.begin(),vec.end()); for(auto e:vec)d.push_front(e); //cout<<d.size()<<"\n"; dp[i]=*st.begin();*/ } //for(int i=1;i<=n;i++)cout<<dp[i]<<" ";cout<<"\n"; long long res=0; long long pow23=1; const int MOD=1e9+7; for(int i=n;i>=1;i--)res+=1ll*dp[i]*pow23,res%=MOD,pow23*=23,pow23%=MOD; return res; } /*signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int n,k; cin>>n>>k; int a[n]; for(auto&i:a)cin>>i; cout<<solve(n,k,a)<<"\n"; }*/
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |