Submission #00078


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include<bits/stdc++.h>
using namespace std;
#define INF (1<<30)
typedef long long int lld;
lld N,K,C,T;
lld A[5000010],B[5000010];
vector<lld> dat, sum;
void generate(){
lld Sa,Xa,Ya,Za;
lld Sb,Xb,Yb,Zb;
cin >> Sa >> Xa >> Ya >> Za;
cin >> Sb >> Xb >> Yb >> Zb;
for (lld i = 0; i < N; i++){
A[i] = Sa + 1LL;
B[i] = Sb + 1LL;
Sa = (Xa * Sa + Ya) % Za;
Sb = (Xb * Sb + Yb) % Zb;
}
}
struct segtree {
lld n_;
segtree(lld n) {
n_ = 1;
while(n_ < n) n_ <<= 1LL;
dat.assign(2*n_-1,0);
sum.assign(2*n_-1,0);
}
void add(lld a, lld b, lld x) { add(a,b,x,0,0,n_); }
lld add(lld a, lld b, lld x, lld k, lld l, lld r) {
if(a <= l && r <= b) {
sum[k] += x;
return dat[k] += x;
}
if(b <= l || r <= a) return dat[k];
lld m = (l+r)/2;
return dat[k] = min(add(a,b,x,2*k+1,l,m),add(a,b,x,2*k+2,m,r))+sum[k];
}
void update(lld k, lld a) {
k += n_-1; // leaf
dat[k] = a;
while(k > 0) {
k = (k - 1) / 2;
dat[k] = min(dat[k*2+1], dat[k*2+2]);
}
}
lld leaf_value(lld k) {
k += n_-1;
lld value = dat[k];
while(k > 0) {
k = (k - 1) / 2;
value += sum[k];
}
return value;
}
};
int main(){
cin >> N >> K >> C >> T;
generate();
segtree segtree(N);
for(lld i=0;i<N;i++) segtree.update(i,B[i]*T-A[i]+1);
lld count = 0;
for(lld i=0;i<N;i++){
lld value = segtree.leaf_value(i);
if(value > 0){
lld addcnt = (value+C-1)/C;
count += addcnt;
segtree.add(i,min(2*K+i+1,N),addcnt*C*(-1));
}
}
cout << count << endl;
}

ステータス

項目 データ
問題 0005 - 楽しい楽しい花の水やり (Watering Flower is So Fun)
ユーザー名 ei1428
投稿日時 2016-12-07 18:54:14
言語 C++11
状態 Accepted
得点 100
ソースコード長 1667 Byte
最大実行時間 1345 ms
最大メモリ使用量 340736 KB

セット

セット 得点 Cases
1 INPUT1 20 / 20 *1.txt
2 INPUT2 20 / 20 *2.txt
3 INPUT3 20 / 20 *3.txt
4 INPUT4 20 / 20 *4.txt
5 INPUT5 20 / 20 *5.txt

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
2016-yo-t5-in1.txt AC 25 ms 2528 KB
1
2016-yo-t5-in2.txt AC 393 ms 340680 KB
2
2016-yo-t5-in3.txt AC 392 ms 340736 KB
3
2016-yo-t5-in4.txt AC 1345 ms 340668 KB
4
2016-yo-t5-in5.txt AC 417 ms 340728 KB
5