Submission #535518

#TimeUsernameProblemLanguageResultExecution timeMemory
535518keta_tsimakuridzePeru (RMI20_peru)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> //#include "peru.h" using namespace std; #define ll long long #define pii pair<int,int> #define f first #define s second #define endl "\n" const int N = 2e5 + 5, mod = 1e9 + 7; //! int t; void add(int &a, int c) { a += c; if(a >= mod) a -= mod; } int solve(int n, int k, int *x) { vector<int> a(n + 1), p(n + 1); vector<ll> dp(n + 1); for(int i = 0; i < n; i++) a[i + 1] = x[i]; deque<pii> st; multiset<ll> s; p[0] = 1; for(int i = 1; i <= n - 1; i++) p[i] = (ll)p[i - 1] * 23 % mod; int ans = 0; for(int i = 1; i <= n; i++) { dp[i] = 1e15; int mx = 0; for(int j = i; j >= max(1, i - k + 1); j--) { mx = max(mx, a[j]); dp[i] = min(dp[i], mx + dp[j - 1]); } /* if(st.size() && st.front().s < i - k + 1) { pii x = st.front(); s.erase(s.find(dp[x.s - 1] + a[x.f])); st.front().s++; x.s++; if(x.s> x.f) st.pop_front(); else s.insert(dp[x.s - 1] + a[x.f]); } int l = i; while(st.size() && a[st.back().f] < a[i]) { l = st.back().s; s.erase(s.find(dp[l - 1] + a[st.back().f])); st.pop_back(); } st.push_back({i, l}); s.insert(a[i] + dp[l - 1]); dp[i] = *s.begin(); */ add(ans, (ll)dp[i] % mod * p[n - i] % mod); } return ans; } static int s[N]; int main() { int n, k; cin >> n >> k; for(int i = 0; i < n; i++) cin >> s[i]; cout << solve(n, k, s); }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccZBfsiv.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccESsaAw.o:peru.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status