QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#584869#7111. Press the ButtonfengTL 30ms3660kbC++20965b2024-09-23 17:13:102024-09-23 17:13:10

Judging History

你现在查看的是最新测评结果

  • [2024-09-23 17:13:10]
  • 评测
  • 测评结果:TL
  • 用时:30ms
  • 内存:3660kb
  • [2024-09-23 17:13:10]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define PII pair<int,int>
using namespace std;

int a, b, c, d, v, t;
int w;
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}
int lcm(int a, int b) {
	return a * b / gcd(a, b);
}
int get(int l, int r, bool flag) {
	double timer = 0;
	int cnt = 0;
	for (int i = l; i <= r; ++i) {
		timer = max(0.0, timer - 1);
		if (i % a == 0 || i % c == 0) {
			if (i % a == 0) cnt += b;
			if (i % c == 0) cnt += d;
			if (!timer) cnt--;
			timer = v + 0.5;
		}
	}
	if (flag && timer >= 1) w = 1;
	return cnt;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int T; cin >> T;
	while (T--) {
		cin >> a >> b >> c >> d >> v >> t;
		w = 0;
		int l = lcm(a, c);
		if (t < l) {
			cout << get(0, t, 0) << endl;
			continue;
		}
		int x = get(0, l - 1, 1);
		int y = get(0, t % l, 0);
		cout << (x + w) * (t / l) + y << endl;
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3600kb

input:

2
8 2 5 1 2 18
10 2 5 1 2 10

output:

6
4

result:

ok 2 number(s): "6 4"

Test #2:

score: 0
Accepted
time: 30ms
memory: 3660kb

input:

1000
8 6 2 6 3 17
1 6 1 1 1 30
5 4 8 8 1 31
7 6 10 3 6 12
9 1 4 4 3 38
3 3 5 8 1 8
9 1 5 2 3 18
6 10 10 8 2 40
9 6 9 10 3 9
2 5 1 10 10 39
7 7 1 2 4 19
8 10 8 6 7 36
2 9 1 1 7 17
1 2 3 5 6 14
8 8 8 7 1 46
6 9 3 9 4 6
10 8 1 7 10 18
7 1 7 10 3 50
1 10 2 1 5 1
5 8 4 9 7 44
9 2 5 4 7 42
9 1 2 1 1 20
5 ...

output:

71
216
52
16
38
22
7
102
30
499
60
75
98
54
84
44
148
80
20
179
45
4
463
139
56
30
45
127
204
121
42
69
38
98
63
121
25
142
17
75
24
175
114
40
32
11
29
85
35
7
66
49
492
49
49
14
17
53
431
161
94
27
21
135
71
92
33
290
57
300
18
89
155
55
10
219
203
390
28
50
67
213
26
18
27
19
128
101
118
62
46
15...

result:

ok 1000 numbers

Test #3:

score: -100
Time Limit Exceeded

input:

100
9 9 3 1 1 2
5 5 7 7 7 50
2 1 8 10 10 45
3 4 5 7 7 38
1 6 9 5 2 13
5 6 7 9 1 29
10 1 4 3 3 19
6 10 10 8 7 3
9 3 10 3 3 14
9 7 1 7 8 38
3 78 5 43 5 958
4 98 3 42 10 7
3 16 9 71 7 52
1 70 3 86 3 410
10 44 1 56 3 628
9 15 9 94 10 15
9 95 9 61 2 525
2 23 8 37 10 108
5 92 3 65 10 331
6 54 6 44 3 537
2...

output:


result: