#include "happiness.h"
#include <bits/stdc++.h>
#define INF (1ll<<61)
using namespace std;
typedef long long LL;
typedef pair<int,int> pii;
LL M;
int num=1, lc[20202020], rc[20202020];
LL T[20202020], lz[20202020];
void upd(int id, LL s, LL e, LL ts, LL te, LL v){
if (e < ts || te < s) return;
if (ts <= s && e <= te){
if (ts == te){
if (v < 0){
if (!lz[id]) T[id] += v;
lz[id]++;
}
else{
lz[id]--;
if (!lz[id]) T[id] += v;
}
return;
}
T[id] += v;
if (s != e) lz[id] += v;
return;
}
LL m=s+e>>1;
if (!lc[id] && ts <= m) lc[id]=++num, T[num]=INF;
if (!rc[id] && te > m) rc[id]=++num, T[num]=INF;
upd(lc[id], s, m, ts, te, v);
upd(rc[id], m+1, e, ts, te, v);
T[id] = min(T[lc[id]], T[rc[id]]) + lz[id];
}
bool init(int N, long long _M, long long A[]) {
M = _M+3;
T[0]=T[1]=INF;
for (int i=0; i<N; i++){
upd(1, 1, M, A[i]+1, M, A[i]);
upd(1, 1, M, A[i], A[i], -INF-A[i]);
}
return T[1]>=-1;
}
bool is_happy(int e, int N, long long A[]) {
if (e>0){
for (int i=0; i<N; i++){
upd(1, 1, M, A[i]+1, M, A[i]);
upd(1, 1, M, A[i], A[i], -INF-A[i]);
}
}
else{
for (int i=0; i<N; i++){
upd(1, 1, M, A[i]+1, M, -A[i]);
upd(1, 1, M, A[i], A[i], INF+A[i]);
}
}
return T[1]>=-1;
}
Compilation message
happiness.cpp: In function 'void upd(int, LL, LL, LL, LL, LL)':
happiness.cpp:30:8: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
30 | LL m=s+e>>1;
| ~^~
grader.cpp: In function 'int main()':
grader.cpp:16:12: warning: unused variable 'max_code' [-Wunused-variable]
16 | long long max_code;
| ^~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
4 ms |
1536 KB |
Output is correct |
7 |
Correct |
4 ms |
1536 KB |
Output is correct |
8 |
Correct |
41 ms |
10424 KB |
Output is correct |
9 |
Correct |
42 ms |
10496 KB |
Output is correct |
10 |
Correct |
36 ms |
10104 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
637 ms |
22112 KB |
Output is correct |
7 |
Correct |
618 ms |
22012 KB |
Output is correct |
8 |
Correct |
583 ms |
22112 KB |
Output is correct |
9 |
Correct |
933 ms |
27632 KB |
Output is correct |
10 |
Correct |
1035 ms |
29704 KB |
Output is correct |
11 |
Correct |
431 ms |
16980 KB |
Output is correct |
12 |
Correct |
451 ms |
17104 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
4 ms |
1536 KB |
Output is correct |
7 |
Correct |
4 ms |
1536 KB |
Output is correct |
8 |
Correct |
41 ms |
10424 KB |
Output is correct |
9 |
Correct |
42 ms |
10496 KB |
Output is correct |
10 |
Correct |
36 ms |
10104 KB |
Output is correct |
11 |
Correct |
637 ms |
22112 KB |
Output is correct |
12 |
Correct |
618 ms |
22012 KB |
Output is correct |
13 |
Correct |
583 ms |
22112 KB |
Output is correct |
14 |
Correct |
933 ms |
27632 KB |
Output is correct |
15 |
Correct |
1035 ms |
29704 KB |
Output is correct |
16 |
Correct |
431 ms |
16980 KB |
Output is correct |
17 |
Correct |
451 ms |
17104 KB |
Output is correct |
18 |
Correct |
1427 ms |
161628 KB |
Output is correct |
19 |
Correct |
1403 ms |
168068 KB |
Output is correct |
20 |
Execution timed out |
2045 ms |
272344 KB |
Time limit exceeded |
21 |
Halted |
0 ms |
0 KB |
- |