QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#739796 | #9544. Grand Prix of Ballance | NoT1m3Cons1d3r | WA | 1235ms | 4772kb | C++20 | 2.4kb | 2024-11-12 23:08:39 | 2024-11-12 23:08:41 |
Judging History
answer
#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <climits>
#include <iostream>
#include <algorithm>
using namespace std;
#define il inline
#define rr read()
#define wr puts()
#define bl putchar(' ')
#define in int
#define max(x, y) (x > y ? x : y)
#define min(x, y) (x < y ? x : y)
#define rep(i, l, n) for (in i = l; i >= n; i--)
// #define int long long
il int read()
{
char ch;
bool f = 0;
while ((ch = getchar()) < '0' || ch > '9')
(ch == '-') && (f = 1);
in x = ch ^ '0';
while ((ch = getchar()) <= '9' && ch >= '0')
x = (x << 1) + (x << 3) + (ch ^ '0');
return f ? -x : x;
}
il void print(in x)
{
if (x < 0)
putchar('-'), x = -x;
if (x >= 10)
print(x / 10);
putchar(x % 10 ^ '0');
}
const int MAXN = 4e6 + 100;
struct node
{
int index, point;
};
bool cmp(node a, node b)
{
if (a.point != b.point)
return a.point > b.point;
else
return a.index < b.index;
}
void solve()
{
int n, m, q;
cin >> n >> m >> q;
vector<node> participant(m);
vector<int> vis(m);
int temp = 0;
queue<int> complete;
for (int i = 0; i < m; ++i)
participant[i].index = i + 1;
while (q--)
{
int op;
cin >> op;
if (op == 1)
{
int mp;
cin >> mp;
temp = mp;
for (int i = 0; i < m; ++i)
vis[i] = 0;
while (!complete.empty())
complete.pop();
continue;
}
int id, x;
cin >> id >> x;
id--;
if (op == 3)
{
if(x != temp)
continue;
vis[id] = -1;
}
if (op == 2)
{
if (x != temp)
continue;
if (vis[id] != 0)
continue;
vis[id] = 1;
complete.emplace(id);
participant[id].point += m - complete.size() + 1;
}
}
sort(participant.begin(), participant.end(), cmp);
for (int i = 0; i < m; ++i)
{
cout << participant[i].index << " " << participant[i].point << "\n";
}
return;
}
signed main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.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: 1ms
memory: 3564kb
input:
3 3 4 6 1 2 2 1 1 2 2 2 3 3 2 2 3 2 2 1 2 3 4 8 1 2 2 1 1 2 2 2 3 3 2 2 3 2 2 1 2 1 1 2 1 1 3 4 7 1 2 2 1 1 2 2 2 3 3 2 2 3 2 2 1 2 1 1
output:
2 4 1 3 3 0 4 0 1 7 2 4 3 0 4 0 2 4 1 3 3 0 4 0
result:
ok 12 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 3816kb
input:
10 18 8 8 2 1 6 1 13 2 1 18 3 8 13 2 7 14 2 5 11 3 6 13 3 1 13 26 7 11 1 22 2 7 22 1 9 2 6 24 1 2 1 18 3 3 4 2 3 18 1 26 3 7 1 3 2 26 1 3 33 3 3 1 2 3 1 2 2 1 1 1 2 1 1 2 1 1 3 1 1 3 3 1 3 2 1 3 3 1 2 2 1 2 2 1 3 3 1 2 2 1 2 2 1 3 3 1 2 3 1 2 3 1 3 3 1 2 3 1 2 2 1 2 2 1 2 2 1 2 1 1 3 2 1 2 2 1 3 2 1...
output:
1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 3 7 7 7 1 0 2 0 4 0 5 0 6 0 1 3 2 0 3 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 25 25 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 1 0 2 0 ...
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 3ms
memory: 3824kb
input:
100 3 51 102 3 35 3 3 40 1 3 34 1 1 3 2 17 3 3 43 3 3 34 3 3 13 3 1 1 3 23 3 2 41 1 3 20 1 2 6 1 2 16 1 2 25 3 3 33 1 3 20 3 3 25 1 3 40 1 2 19 1 3 44 1 1 2 3 23 2 2 47 2 2 33 1 3 1 2 3 29 2 2 34 1 3 14 2 2 37 2 3 49 2 2 18 2 3 14 2 3 17 2 2 41 2 3 27 1 3 4 2 2 6 2 3 12 2 2 36 2 2 46 1 2 41 2 2 4 2 ...
output:
41 99 6 97 16 79 17 51 47 51 37 50 18 49 19 48 36 46 31 45 8 44 34 43 25 42 5 41 42 40 39 39 33 38 46 37 40 36 9 35 3 34 20 33 2 32 7 31 1 0 4 0 10 0 11 0 12 0 13 0 14 0 15 0 21 0 22 0 23 0 24 0 26 0 27 0 28 0 29 0 30 0 32 0 35 0 38 0 43 0 44 0 45 0 48 0 49 0 50 0 51 0 10 44 18 44 20 44 3 22 11 22 1...
result:
ok 10000 lines
Test #4:
score: 0
Accepted
time: 435ms
memory: 4520kb
input:
2 100000 26255 8528 3 4320 94863 2 22821 94863 1 18284 1 10553 1 77620 3 6565 67064 2 22073 77620 2 9092 77620 1 562 2 16938 562 1 65706 3 2856 65706 2 7875 65706 1 64045 3 16548 64045 3 19294 95518 2 9632 84434 1 88879 3 10505 92079 1 36584 2 2639 93669 3 5313 93284 2 2904 36584 1 23511 1 93889 3 5...
output:
14402 78759 1577 52510 2893 52510 3001 52510 4019 52510 4132 52510 5336 52510 9160 52510 12161 52510 12268 52510 15862 52510 18707 52510 20497 52510 21818 52510 23244 52510 54 52509 2198 52509 2436 52509 4422 52509 6125 52509 6403 52509 9552 52509 9842 52509 13288 52509 17682 52509 23798 52509 25727...
result:
ok 126255 lines
Test #5:
score: -100
Wrong Answer
time: 1235ms
memory: 4772kb
input:
2 100000 100000 200000 1 69331 2 73475 69331 1 58337 2 73475 58337 1 53081 2 73475 53081 1 27731 2 73475 27731 1 67757 2 73475 67757 1 72765 2 73475 72765 1 50329 2 73475 50329 1 71224 2 73475 71224 1 3277 2 73475 3277 1 99398 2 73475 99398 1 13147 2 73475 13147 1 47854 2 73475 47854 1 63514 2 73475...
output:
73475 1410065408 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 27 0 28 0 29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0 37 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 58 0 59...
result:
wrong answer 1st lines differ - expected: '73475 10000000000', found: '73475 1410065408'