QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#321581#5441. Quartz CollectionduckindogWA 1ms6028kbC++141.4kb2024-02-04 23:16:362024-02-04 23:16:36

Judging History

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

  • [2024-02-04 23:16:36]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:6028kb
  • [2024-02-04 23:16:36]
  • 提交

answer

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

using namespace std;

#define int long long

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];
  for (int i = 1; i <= n; ++i) answer += x[i].b;
  bool player = 0;
  int it = 2;
  while (d[it + 1] <= 0 && it < n) {
    if (player) answer += d[it] + d[it + 1];
    player = 1 - player;
    it += 2;
  }

  if (d[it] > 0) it += player;
  else it += 1 - player;

  while (it <= n) {
    answer += d[it];
    it += 2;
    player = 1 - player;
  }
  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: 6028kb

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: 5920kb

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: 5940kb

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
5065
5060
5007
4975
4993
4950
4981
4974
4991
4999
4966
4936
4925
4954
4920
4837
4787
4793
4774
4730
4708
4659
4668
4597
4671
4654
4687
4677
4685
4714
4787
4779
4755
4714
4685
4681
4735
4797
4831
4821
4821
4800
4759
4775
4796
4724
4721
4746
4699
4661
4609
4573
4554
4605
4585
4532
4571
4536
4550
...

result:

wrong answer 8th numbers differ - expected: '4928', found: '4981'