Submission #1022606
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> #include <deque> #include <functional> #define repeat(i,n) for (int i = 0; (i) < (n); ++(i)) #define whole(f,x,...) ([&](decltype((x)) whole) { return (f)(begin(whole), end(whole), ## __VA_ARGS__); })(x) typedef long long ll; using namespace std; template <class T> void setmax(T & a, T const & b) { if (a < b) a = b; } template <typename X, typename T> auto vectors(X x, T a) { return vector<T>(x, a); } template <typename X, typename Y, typename Z, typename... Zs> auto vectors(X x, Y y, Z z, Zs... zs) { auto cont = vectors(y, z, zs...); return vector<decltype(cont)>(x, cont); } template <typename T> struct sliding_window { deque<pair<int, T> > data; function<bool (T const &, T const &)> cmp; template <typename F> sliding_window(F a_lt) : cmp(a_lt) {} T front() { return data.front().second; } // smallest void push_back(int i, T a) { while (not data.empty() and cmp(a, data.back().second)) data.pop_back(); data.emplace_back(i, a); } void pop_front(int i) { if (data.front().first == i) data.pop_front(); } void push_front(int i, T a) { if (data.empty() or not cmp(data.front().second, a)) data.emplace_front(i, a); } }; const ll inf = ll(1e18)+9; int main() { int n, m, k; cin >> n >> m >> k; vector<int> a(n); repeat (i,n) cin >> a[i]; vector<vector<ll> > dp = vectors(k, n, - inf); repeat (j,n) dp[0][j] = a[j]; repeat (i,k-1) { sliding_window<ll> rmq( (greater<ll>()) ); rmq.push_back(-1, - inf); repeat (j,n) { if (j-m-1 >= -1) rmq.pop_front(j-m-1); setmax(dp[i+1][j], rmq.front() + (i+2) *(ll) a[j]); rmq.push_back(j, dp[i][j]); } } ll ans = *whole(max_element, dp[k-1]); cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Struck Out |
User | kimiyuki |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1860 Byte |
Status | AC |
Exec Time | 984 ms |
Memory | 236672 KB |
Judge Result
Set Name | Sample | subtask1 | subtask2 | subtask3 | All | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | 200 / 200 | 300 / 300 | 100 / 100 | ||||||||||
Status |
|
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_1.txt, sample_2.txt, sample_3.txt |
subtask1 | sample_2.txt, subtask_1_1.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
subtask2 | sample_1.txt, sample_2.txt, sample_3.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt |
subtask3 | sample_1.txt, sample_2.txt, sample_3.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt |
All | sample_1.txt, sample_2.txt, sample_3.txt, subtask_1_1.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt, subtask_4_1.txt, subtask_4_10.txt, subtask_4_11.txt, subtask_4_12.txt, subtask_4_13.txt, subtask_4_2.txt, subtask_4_3.txt, subtask_4_4.txt, subtask_4_5.txt, subtask_4_6.txt, subtask_4_7.txt, subtask_4_8.txt, subtask_4_9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_1.txt | AC | 3 ms | 256 KB |
sample_2.txt | AC | 3 ms | 256 KB |
sample_3.txt | AC | 3 ms | 256 KB |
subtask_1_1.txt | AC | 3 ms | 256 KB |
subtask_1_2.txt | AC | 89 ms | 23808 KB |
subtask_1_3.txt | AC | 906 ms | 236672 KB |
subtask_1_4.txt | AC | 9 ms | 1536 KB |
subtask_1_5.txt | AC | 56 ms | 5376 KB |
subtask_1_6.txt | AC | 4 ms | 512 KB |
subtask_1_7.txt | AC | 332 ms | 79872 KB |
subtask_1_8.txt | AC | 917 ms | 236672 KB |
subtask_1_9.txt | AC | 6 ms | 1408 KB |
subtask_2_1.txt | AC | 3 ms | 256 KB |
subtask_2_2.txt | AC | 3 ms | 256 KB |
subtask_2_3.txt | AC | 3 ms | 256 KB |
subtask_2_4.txt | AC | 3 ms | 256 KB |
subtask_2_5.txt | AC | 3 ms | 256 KB |
subtask_2_6.txt | AC | 3 ms | 256 KB |
subtask_2_7.txt | AC | 3 ms | 256 KB |
subtask_2_8.txt | AC | 3 ms | 256 KB |
subtask_2_9.txt | AC | 3 ms | 256 KB |
subtask_3_1.txt | AC | 132 ms | 24960 KB |
subtask_3_2.txt | AC | 133 ms | 24960 KB |
subtask_3_3.txt | AC | 129 ms | 24192 KB |
subtask_3_4.txt | AC | 108 ms | 19968 KB |
subtask_3_5.txt | AC | 9 ms | 1408 KB |
subtask_3_6.txt | AC | 89 ms | 13184 KB |
subtask_3_7.txt | AC | 131 ms | 24960 KB |
subtask_3_8.txt | AC | 15 ms | 2688 KB |
subtask_3_9.txt | AC | 137 ms | 24960 KB |
subtask_4_1.txt | AC | 919 ms | 236672 KB |
subtask_4_10.txt | AC | 857 ms | 236672 KB |
subtask_4_11.txt | AC | 978 ms | 236672 KB |
subtask_4_12.txt | AC | 984 ms | 236672 KB |
subtask_4_13.txt | AC | 978 ms | 236672 KB |
subtask_4_2.txt | AC | 968 ms | 236672 KB |
subtask_4_3.txt | AC | 911 ms | 236672 KB |
subtask_4_4.txt | AC | 925 ms | 236672 KB |
subtask_4_5.txt | AC | 805 ms | 200576 KB |
subtask_4_6.txt | AC | 110 ms | 19456 KB |
subtask_4_7.txt | AC | 535 ms | 125312 KB |
subtask_4_8.txt | AC | 911 ms | 232960 KB |
subtask_4_9.txt | AC | 448 ms | 104960 KB |