# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
73263 |
2018-08-28T06:14:45 Z |
강태규(#2268) |
Circus (Balkan15_CIRCUS) |
C++11 |
|
112 ms |
39264 KB |
#include "circus.h"
#include <cstdio>
#include <algorithm>
using namespace std;
int n, mx;
int cp[100000];
int dp[100000];
const int inf = 1e9 + 7;
struct node {
int l, r, mn;
node() : l(-1), r(-1) {}
} ns[32 * 100000];
int _alloc() {
static int tp = 0;
ns[tp].mn = mx;
return tp++;
}
void update(int &i, int s, int e, int x, int y, int v) {
if (e < x || y < s) return;
if (i == -1) i = _alloc();
if (x <= s && e <= y) {
ns[i].mn = min(ns[i].mn, v);
return;
}
int m = (s + e) / 2;
update(ns[i].l, s, m, x, y, v);
update(ns[i].r, m + 1, e, x, y, v);
}
int query(int &i, int s, int e, int x) {
if (i == -1) return mx;
int ret = ns[i].mn;
if (s == e) return ret;
int m = (s + e) / 2;
if (x <= m) ret = min(ret, query(ns[i].l, s, m, x));
else ret = min(ret, query(ns[i].r, m + 1, e, x));
return ret;
}
int rt;
void init(int N, int M, int P[]) {
n = N;
mx = M;
rt = _alloc();
for (int i = 0; i < n; ++i) cp[i] = P[i];
sort(cp, cp + n);
for (int i = n; i--; ) {
dp[i] = query(rt, 0, mx - 1, cp[i]) - cp[i];
update(rt, 0, mx - 1, 0, cp[i] - dp[i], cp[i]);
}
}
int minLength(int D) {
return query(rt, 0, mx - 1, D) - D;
}
Compilation message
grader.cpp: In function 'int main()':
grader.cpp:14:12: warning: unused variable 'max_code' [-Wunused-variable]
long long max_code;
^~~~~~~~
grader.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &N, &M);
~~~~~^~~~~~~~~~~~~~~~
grader.cpp:18:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &P[i]);
~~~~~^~~~~~~~~~~~~
grader.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &Q);
~~~~~^~~~~~~~~~
grader.cpp:23:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &d);
~~~~~^~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
95 ms |
39032 KB |
Output is correct |
2 |
Correct |
112 ms |
39264 KB |
Output is correct |
3 |
Correct |
106 ms |
39264 KB |
Output is correct |
4 |
Correct |
93 ms |
39264 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
32 ms |
39264 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
32 ms |
39264 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
32 ms |
39264 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
95 ms |
39032 KB |
Output is correct |
2 |
Correct |
112 ms |
39264 KB |
Output is correct |
3 |
Correct |
106 ms |
39264 KB |
Output is correct |
4 |
Correct |
93 ms |
39264 KB |
Output is correct |
5 |
Incorrect |
32 ms |
39264 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
95 ms |
39032 KB |
Output is correct |
2 |
Correct |
112 ms |
39264 KB |
Output is correct |
3 |
Correct |
106 ms |
39264 KB |
Output is correct |
4 |
Correct |
93 ms |
39264 KB |
Output is correct |
5 |
Incorrect |
32 ms |
39264 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |