Submission #997919
Source Code Expand
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> using namespace std; typedef long long ll; const ll INF = (ll)1e18; //const int N = 12; const int N = 100100; int n, m, k; ll a[N]; ll b[N]; ll c[N]; struct Queue { int sz1, sz2; ll a[N][2], b[N][2]; Queue() : sz1(0), sz2(0), a(), b() {} void push(ll x) { a[sz1][0] = x; if (sz1 > 0) a[sz1][1] = max(a[sz1 - 1][1], x); else a[sz1][1] = x; sz1++; } void pop() { if (sz2 == 0) { if (sz1 == 0) throw; while(sz1 > 0) { sz1--; b[sz2][0] = a[sz1][0]; if (sz2 > 0) b[sz2][1] = max(b[sz2 - 1][1], a[sz1][0]); else b[sz2][1] = b[sz2][0]; sz2++; } } sz2--; } ll getMax() { if (sz1 == 0 && sz2 == 0) return -INF; if (sz2 == 0) return a[sz1 - 1][1]; if (sz1 == 0) return b[sz2 - 1][1]; return max(a[sz1 - 1][1], b[sz2 - 1][1]); } }; int main() { // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); scanf("%d%d%d", &n, &m, &k); for (int i = 0; i < n; i++) scanf("%lld", &a[i]); for (int i = 0; i < n; i++) b[i] = a[i]; for (int it = 1; it < k; it++) { // cerr << "it = " << it << endl; Queue q; for (int i = 0; i < m; i++) { // cerr << i << endl; c[i] = (it + 1) * a[i] + q.getMax(); q.push(b[i]); } for (int i = m; i < n; i++) { // cerr << i << endl; c[i] = (it + 1) * a[i] + q.getMax(); q.push(b[i]); q.pop(); } for (int i = 0; i < n; i++) b[i] = c[i]; } ll ans = 0; for (int i = 0; i < n; i++) ans = max(ans, b[i]); printf("%lld\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Struck Out |
User | Um_nik |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1682 Byte |
Status | AC |
Exec Time | 463 ms |
Memory | 5760 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:64:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d", &n, &m, &k); ^ ./Main.cpp:66:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%lld", &a[i]); ^
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 | 6 ms | 3328 KB |
sample_2.txt | AC | 6 ms | 3328 KB |
sample_3.txt | AC | 6 ms | 3328 KB |
subtask_1_1.txt | AC | 11 ms | 3328 KB |
subtask_1_2.txt | AC | 80 ms | 3584 KB |
subtask_1_3.txt | AC | 313 ms | 5760 KB |
subtask_1_4.txt | AC | 12 ms | 3456 KB |
subtask_1_5.txt | AC | 23 ms | 5760 KB |
subtask_1_6.txt | AC | 39 ms | 3328 KB |
subtask_1_7.txt | AC | 117 ms | 5760 KB |
subtask_1_8.txt | AC | 314 ms | 5760 KB |
subtask_1_9.txt | AC | 56 ms | 3328 KB |
subtask_2_1.txt | AC | 10 ms | 3328 KB |
subtask_2_2.txt | AC | 7 ms | 3328 KB |
subtask_2_3.txt | AC | 9 ms | 3328 KB |
subtask_2_4.txt | AC | 10 ms | 3328 KB |
subtask_2_5.txt | AC | 10 ms | 3328 KB |
subtask_2_6.txt | AC | 10 ms | 3328 KB |
subtask_2_7.txt | AC | 10 ms | 3328 KB |
subtask_2_8.txt | AC | 10 ms | 3328 KB |
subtask_2_9.txt | AC | 9 ms | 3328 KB |
subtask_3_1.txt | AC | 55 ms | 5760 KB |
subtask_3_2.txt | AC | 62 ms | 5760 KB |
subtask_3_3.txt | AC | 61 ms | 5760 KB |
subtask_3_4.txt | AC | 52 ms | 5248 KB |
subtask_3_5.txt | AC | 13 ms | 3456 KB |
subtask_3_6.txt | AC | 40 ms | 5760 KB |
subtask_3_7.txt | AC | 56 ms | 5760 KB |
subtask_3_8.txt | AC | 15 ms | 3584 KB |
subtask_3_9.txt | AC | 62 ms | 5760 KB |
subtask_4_1.txt | AC | 436 ms | 5760 KB |
subtask_4_10.txt | AC | 398 ms | 5760 KB |
subtask_4_11.txt | AC | 429 ms | 5760 KB |
subtask_4_12.txt | AC | 450 ms | 5760 KB |
subtask_4_13.txt | AC | 457 ms | 5760 KB |
subtask_4_2.txt | AC | 463 ms | 5760 KB |
subtask_4_3.txt | AC | 399 ms | 5760 KB |
subtask_4_4.txt | AC | 447 ms | 5760 KB |
subtask_4_5.txt | AC | 408 ms | 5760 KB |
subtask_4_6.txt | AC | 47 ms | 5760 KB |
subtask_4_7.txt | AC | 252 ms | 5760 KB |
subtask_4_8.txt | AC | 430 ms | 5632 KB |
subtask_4_9.txt | AC | 215 ms | 5760 KB |