QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#584869 | #7111. Press the Button | feng | TL | 30ms | 3660kb | C++20 | 965b | 2024-09-23 17:13:10 | 2024-09-23 17:13:10 |
Judging History
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...