QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#592620 | #7111. Press the Button | syss | WA | 0ms | 3584kb | C++20 | 1.3kb | 2024-09-27 00:46:26 | 2024-09-27 00:46:27 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using PLB = pair<i64, bool>;
void solve() {
int a, b, c, d;
i64 v, t;
cin >> a >> b >> c >> d >> v >> t;
i64 T = 1LL * a / gcd(a, c) * c; // lcm(a, c)
auto calc = [&](auto t) {
// cnt : 计数器的值
// tim : LED 最后亮到哪
i64 cnt = 0, time = -1;
// now : 现在的时间
// x : BaoBao 下一次按键的时间
// y : DreamGrid 下一次按键的时间
i64 now = 0, x = 0, y = 0;
while (now <= t) {
// BaoBao 按键
if (now == x) {
cnt += b - (now > time ? 1 : 0);
time = now + v;
x += a;
}
// DreamGrid 按键
if (now == y) {
cnt += d - (now > time ? 1 : 0);
time = now + v;
y += c;
}
// 前进到下一个按键的时刻
now = min(x, y);
}
return PLB(cnt, time > t);
};
if (t < T) {
cout << calc(t).first << '\n';
} else {
PLB p1 = calc(T - 1);
PLB p2 = calc(t % T);
cout << (p1.first + (p1.second ? 1 : 0) * (t / T) + p2.first) << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3584kb
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: -100
Wrong Answer
time: 0ms
memory: 3576kb
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:
42 42 52 16 38 22 7 102 30 67 40 30 28 24 28 44 148 20 20 103 45 4 71 58 56 20 45 37 59 40 42 24 38 58 63 55 13 81 17 39 24 64 48 40 32 11 29 85 35 7 37 22 60 49 49 14 8 53 99 35 94 27 21 59 22 58 33 70 57 48 18 38 90 19 10 111 42 110 28 50 67 45 26 12 27 19 86 37 118 26 46 15 62 20 80 50 29 41 90 2...
result:
wrong answer 1st numbers differ - expected: '71', found: '42'