QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#772860#7111. Press the ButtonMiguel03121WA 2ms3892kbC++171.4kb2024-11-22 22:26:452024-11-22 22:26:45

Judging History

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

  • [2024-11-22 22:26:45]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3892kb
  • [2024-11-22 22:26:45]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

#define F(i, a, b) for (int i = a; i < b; i++)
#define ALL(x) x.begin(), x.end()
#define IOS ios_base::sync_with_stdio(0)

typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef long long ll;

int main() {
  IOS;
  cin.tie(0), cout.tie(0);

  int T;
  cin >> T;
  ll a, b, c, d, v, t;
  while (T--) {
    cin >> a >> b >> c >> d >> v >> t;
    vector<ll> v1, v2;
    v1.push_back(0);
    ll cur = a % c;
    while (cur != 0) {
      v1.push_back(min(cur, a));
      cur = (cur + a) % c;
    }
    v2.push_back(0);
    cur = c % a;
    while (cur != 0) {
      v2.push_back(min(cur, c));
      cur = (cur + c) % a;
    }

    int cnt1 = 0, cnt2 = 0;
    for (auto x : v1) {
      if (x > v)
        cnt1++;
    }
    for (auto x : v2) {
      if (x > v)
        cnt2++;
    }
    int m1 = v1.size(), m2 = v2.size();
    ll delta = 0;
    delta += t / (m1 * a) * cnt1;
    if (min(m1 * a - v1[m1 - 1], a) > v || min(m2 * c - v2[m2 - 1], c) > v) {
      delta += t / (m1 * a);
    }
    delta += t / (m2 * c) * cnt2;
    int r = (t % (m1 * a)) / a + 1;
    F(i, 0, r) {
      if (v1[i] > v)
        delta++;
    }
    r = (t % (m2 * c)) / c + 1;
    F(i, 0, r) {
      if (v2[i] > v)
        delta++;
    }

    // t = 0
    delta++;

    cout << (t / a + 1) * b + (t / c + 1) * d - delta << '\n';
  }
}

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: 2ms
memory: 3892kb

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:

69
216
52
16
38
22
7
102
30
499
58
75
98
54
84
43
148
80
20
179
45
4
463
135
56
30
45
127
204
121
42
63
38
96
63
121
25
140
17
75
24
171
114
40
32
11
29
85
35
7
66
49
492
48
49
14
13
53
426
153
93
27
21
132
71
92
33
285
57
300
18
89
155
55
10
219
203
384
28
50
66
213
26
18
27
19
128
101
117
58
46
15...

result:

wrong answer 1st numbers differ - expected: '71', found: '69'