QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#320910#5441. Quartz CollectionduckindogWA 1ms4876kbC++141.3kb2024-02-03 23:39:242024-02-03 23:39:24

Judging History

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

  • [2024-02-03 23:39:24]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:4876kb
  • [2024-02-03 23:39:24]
  • 提交

answer

//from duckindog wth depression
#include<bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

int n, m;
struct quartz {
  int a, b, t;
  quartz() : a(0), b(0), t(0) {}
  quartz(int a, int b, int t) : a(a), b(b), t(t) {}
} x[N];

int d[N];
int cal() {
  sort(x + 1, x + n + 1, [&](const auto&x, const auto& y) {
    return make_pair(x.a - x.b, x.a) < make_pair(y.a - y.b, y.a);
  });
  for (int i = 1; i <= n; ++i) d[i] = x[i].a - x[i].b;
  int answer = d[1];
  bool player = 0;
  int it = 2;
  while (it < n) {
    if (it < n - 1) {
      if (d[it] + d[it + 1] <= d[it]) {
        if (player) answer += d[it] + d[it + 1];
        it += 2;
        player = 1 - player;
        continue;
      }
    }
    if (player) answer += d[it];
    it += 1;
    player = 1 - player;
  }

  for (int i = 1; i <= n; ++i) answer += x[i].b;
  return answer;
}

int32_t main() {
  cin.tie(0)->sync_with_stdio(0);

  if (fopen("duck.inp", "r")) {
    freopen("duck.inp", "r", stdin);
    freopen("duck.out", "w", stdout);
  }

  cin >> n >> m;
  for (int i = 1; i <= n; ++i) {
    int a, b; cin >> a >> b;
    x[i] = {a, b, i};
  }
  cout << cal() << "\n";
  for (int i = 1; i <= m; ++i) {
    int t, a, b; cin >> t >> a >> b;
    for (int j = 1; j <= n; ++j) if (x[j].t == t) x[j] = {a, b, t};
    cout << cal() << "\n";
  }
}

详细

Test #1:

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

input:

4 5
2 4
5 7
1 7
2 1
4 5 2
1 6 2
4 4 3
2 1 3
3 6 6

output:

13
14
15
14
10
13

result:

ok 6 numbers

Test #2:

score: 0
Accepted
time: 1ms
memory: 4732kb

input:

1 1
1 1
1 1 1

output:

1
1

result:

ok 2 number(s): "1 1"

Test #3:

score: -100
Wrong Answer
time: 1ms
memory: 4876kb

input:

100 100
6 7
100 8
5 61
5 75
59 65
51 47
83 37
34 54
87 46
4 26
21 87
12 97
86 68
60 11
62 76
14 83
29 31
91 62
57 80
47 75
85 97
62 77
91 86
14 25
48 77
83 65
39 61
78 77
45 46
90 74
100 91
86 98
55 5
84 42
91 69
100 4
74 98
60 37
75 44
41 12
15 34
36 1
99 16
7 87
36 26
79 42
41 84
17 98
72 16
38 55...

output:

5109
5005
5003
5007
4975
4993
4950
4928
4878
4930
4903
4870
4840
4829
4898
4864
4837
4787
4793
4732
4730
4668
4620
4572
4501
4575
4613
4687
4677
4685
4714
4733
4683
4701
4660
4631
4628
4682
4743
4777
4725
4725
4704
4710
4679
4744
4672
4687
4650
4603
4565
4543
4477
4514
4605
4585
4532
4520
4489
4454
...

result:

wrong answer 2nd numbers differ - expected: '5065', found: '5005'