QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#627689#7744. Elevatorheige#WA 34ms7520kbC++231.4kb2024-10-10 16:45:552024-10-10 16:45:55

Judging History

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

  • [2024-10-10 16:45:55]
  • 评测
  • 测评结果:WA
  • 用时:34ms
  • 内存:7520kb
  • [2024-10-10 16:45:55]
  • 提交

answer

#include <bits/stdc++.h>

#define int int64_t

const int kMaxN = 1e5 + 5;

void dickdreamer() {
  int n, k;
  std::cin >> n >> k;
  std::vector<std::tuple<int, int, int>> vec;
  for (int i = 1; i <= n; ++i) {
    int c, w, f;
    std::cin >> c >> w >> f;
    vec.emplace_back(f, w, c);
  }
  std::sort(vec.begin(), vec.end(), std::greater<>());
  int ans = 0, cnt[3] = {0};
  for (auto [f, w, c] : vec) {
    // std::cerr << f << ' ' << w << ' ' << c << ' ' << ans << ' ' << cnt[1] << ' ' << cnt[2] << '\n';
    if (cnt[w] >= c) {
      cnt[w] -= c, c = 0;
      continue;
    }
    c -= cnt[w], cnt[w] = 0;
    if (w == 1 && 2 * cnt[2] >= c) {
      int t = c / 2;
      cnt[2] -= t, c -= 2 * t;
      if (c) --cnt[2], ++cnt[1], --c;
    }
    if (!c) continue;
    int bb = k / w, ct = c / bb;
    ans += f * ct, c -= bb * ct;
    if (!c) continue;
    ans += f;
    // std::cerr << "!!! " << c << ' ' << cnt[1] << ' ' << cnt[2] << '\n';
    if (w == 1) {
      cnt[1] += (c & 1);
      cnt[2] += k / 2 - (c + 1) / 2;
    } else {
      cnt[2] += k / 2 - c;
    }
  }
  std::cout << ans << '\n';
}

int32_t main() {
#ifdef ORZXKR
  freopen("in.txt", "r", stdin);
  freopen("out.txt", "w", stdout);
#endif
  std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0);
  int T = 1;
  std::cin >> T;
  while (T--) dickdreamer();
  // std::cerr << 1.0 * clock() / CLOCKS_PER_SEC << "s\n";
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3552kb

input:

2
4 6
1 1 8
7 2 5
1 1 7
3 2 6
8 1200000
100000 1 100000
100000 1 12345
100000 2 100000
100000 2 12345
100000 1 100000
100000 1 12345
100000 2 100000
100000 2 12345

output:

24
100000

result:

ok 2 lines

Test #2:

score: -100
Wrong Answer
time: 34ms
memory: 7520kb

input:

5501
8 104
5 2 3
6 2 4
5 2 3
6 2 9
8 2 4
2 1 3
7 2 4
8 2 8
1 290
3 1 1
12 12
6 1 2
1 2 2
1 1 2
1 2 4
6 1 1
1 2 5
6 1 4
4 1 4
6 2 4
6 2 5
4 2 5
4 1 4
5 334
1 1 4
1 2 3
4 2 1
5 1 1
2 1 2
13 218
5 2 3
5 1 4
1 2 1
1 2 5
3 2 2
1 1 3
4 2 2
1 2 5
2 2 1
2 1 5
3 2 1
5 2 1
1 1 4
10 260
7 2 1
5 1 1
5 2 4
6 1 6...

output:

9
1
23
4
5
7
1
3
9
6
1
10
4
9
17
6
4
1
8
5
5
7
1
3
23
6
3
3
2
2
2
3
8
1
5
6
9
11
147
7
10
2
7
7
8
6
5
5
1
7
3
5
10
7
7
10
8
1
4
2
3
9
1
5
2
9
1
6
7
7
6
10
18
8
10
4
10
9
2
8
3
5
9
3
6
5
3
2
6
1
3
2
2
1
6
9
6
3
4
8
9
9
2
6
1
2
6
7
5
2
5
21
8
1
2
3
4
9
3
4
6
5
9
6
1
7
3
7
3
2
2
8
7
3
5
9
7
10
7
3
2
4
...

result:

wrong answer 659th lines differ - expected: '188', found: '189'