Submission #8650103
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using i64 = int_fast64_t;
#define repeat(i, a, b) for(int i = (a); (i) < (b); ++(i))
#define rep(i, n) repeat(i, 0, n)
const i64 CYCLES_PER_SEC = 2800000000;
struct Timer {
i64 start;
Timer() { reset(); }
void reset() { start = getCycle(); }
inline double get() {
return (double)(getCycle() - start) / CYCLES_PER_SEC * 1000;
}
private:
inline i64 getCycle() {
uint32_t low, high;
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
return ((i64)low) | ((i64)high << 32);
}
} timer;
/* SegmentTree */
template <class T>
class SegTree {
using F = function<T(T, T)>;
int n;
vector<T> data;
F f;
T e;
public:
SegTree<T>() {}
SegTree<T>& operator=(const SegTree<T>& t) {
n = t.n;
data = t.data;
f = t.f;
e = t.e;
return *this;
}
SegTree<T>(const vector<T>& as, const F f, const T& e) : f(f), e(e) {
n = 1;
while(n < as.size()) n <<= 1;
data.assign(2 * n, e);
for(int i = 0; i < as.size(); i++) {
data[n + i] = as[i];
}
for(int i = n - 1; i > 0; i--) {
data[i] = f(data[2 * i], data[2 * i + 1]);
}
}
void update(int k, const T& x) {
k += n;
data[k] = x;
while(k >>= 1) {
data[k] = f(data[2 * k], data[2 * k + 1]);
}
}
T query(int a, int b) {
assert(a >= 0 and b <= n);
T L = e, R = e;
for(a += n, b += n; a < b; a >>= 1, b >>= 1) {
if(a & 1) {
L = f(L, data[a++]);
}
if(b & 1) {
R = f(data[--b], R);
}
}
return f(L, R);
}
T operator[](const int& k) const { return data[k + n]; }
};
// https://atcoder.jp/contests/cf16-tournament-round3-open/tasks/asaporo_d
void asaporo_d() {
int n, m, k;
scanf("%d%d%d", &n, &m, &k);
std::vector<i64> a(n);
rep(i, n) scanf("%ld", &a[i]);
a.insert(a.begin(), 0LL);
timer.reset();
SegTree<i64> seg(std::vector<i64>(n + 1, 0),
[](i64 a, i64 b) { return std::max<i64>(a, b); }, -1e18);
std::vector<std::vector<i64>> dp(
n + 1, std::vector<i64>(k + 1, static_cast<i64>(0)));
for(i64 j = 0; j < k; j++) {
if(timer.get() > 1000) assert(0);
for(i64 i = 1; i <= n; i++) {
if(j >= i) dp[i][j + 1] = 0;
dp[i][j + 1] = (j + 1) * a[i] + seg.query(max<i64>(i - m, 0), i);
}
rep(i, n + 1) seg.update(i, dp[i][j + 1]);
// rep(i, n + 1) printf("%ld ", seg[i]);
// printf("\n");
}
i64 ret = 0;
printf("%ld\n", seg.query(0, n + 1));
}
int main() {
asaporo_d();
return 0;
}
Submission Info
Submission Time |
|
Task |
A - Struck Out |
User |
edamat |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2921 Byte |
Status |
RE |
Exec Time |
1137 ms |
Memory |
241392 KB |
Compile Error
./Main.cpp: In function ‘void asaporo_d()’:
./Main.cpp:85:32: 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:87:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
rep(i, n) scanf("%ld", &a[i]);
^
Judge Result
Set Name |
Sample |
subtask1 |
subtask2 |
subtask3 |
All |
Score / Max Score |
0 / 0 |
0 / 100 |
0 / 200 |
0 / 300 |
0 / 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, 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 |
1 ms |
256 KB |
sample_2.txt |
AC |
1 ms |
256 KB |
sample_3.txt |
AC |
1 ms |
256 KB |
subtask_1_1.txt |
AC |
1 ms |
256 KB |
subtask_1_2.txt |
AC |
430 ms |
24448 KB |
subtask_1_3.txt |
RE |
1130 ms |
241392 KB |
subtask_1_4.txt |
AC |
22 ms |
1920 KB |
subtask_1_5.txt |
AC |
95 ms |
11632 KB |
subtask_1_6.txt |
WA |
4 ms |
512 KB |
subtask_1_7.txt |
RE |
1119 ms |
85104 KB |
subtask_1_8.txt |
RE |
1127 ms |
241392 KB |
subtask_1_9.txt |
WA |
14 ms |
1408 KB |
subtask_2_1.txt |
AC |
2 ms |
384 KB |
subtask_2_2.txt |
AC |
1 ms |
256 KB |
subtask_2_3.txt |
AC |
2 ms |
256 KB |
subtask_2_4.txt |
AC |
2 ms |
256 KB |
subtask_2_5.txt |
WA |
1 ms |
256 KB |
subtask_2_6.txt |
WA |
1 ms |
256 KB |
subtask_2_7.txt |
AC |
2 ms |
384 KB |
subtask_2_8.txt |
AC |
2 ms |
384 KB |
subtask_2_9.txt |
AC |
2 ms |
384 KB |
subtask_3_1.txt |
AC |
581 ms |
30448 KB |
subtask_3_2.txt |
AC |
574 ms |
30448 KB |
subtask_3_3.txt |
AC |
566 ms |
30448 KB |
subtask_3_4.txt |
AC |
444 ms |
24844 KB |
subtask_3_5.txt |
AC |
21 ms |
1792 KB |
subtask_3_6.txt |
AC |
201 ms |
19440 KB |
subtask_3_7.txt |
AC |
554 ms |
30448 KB |
subtask_3_8.txt |
AC |
43 ms |
3328 KB |
subtask_3_9.txt |
AC |
548 ms |
30448 KB |
subtask_4_1.txt |
RE |
1127 ms |
241392 KB |
subtask_4_10.txt |
RE |
1132 ms |
241392 KB |
subtask_4_11.txt |
RE |
1129 ms |
241392 KB |
subtask_4_12.txt |
RE |
1130 ms |
241392 KB |
subtask_4_13.txt |
RE |
1126 ms |
241392 KB |
subtask_4_2.txt |
RE |
1128 ms |
241392 KB |
subtask_4_3.txt |
RE |
1127 ms |
241392 KB |
subtask_4_4.txt |
RE |
1122 ms |
241392 KB |
subtask_4_5.txt |
RE |
1136 ms |
205424 KB |
subtask_4_6.txt |
AC |
386 ms |
25712 KB |
subtask_4_7.txt |
RE |
1137 ms |
130416 KB |
subtask_4_8.txt |
RE |
1136 ms |
238332 KB |
subtask_4_9.txt |
RE |
1121 ms |
110064 KB |