QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#790734 | #9733. Heavy-light Decomposition | ucup-team4906# | WA | 0ms | 20096kb | C++17 | 1.3kb | 2024-11-28 15:03:42 | 2024-11-28 15:03:42 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(), (x).end()
#define pb push_back
using ll = long long;
using vi = vector<int>;
using vii = vector<vi>;
#define N 500010
int n, k;
int l[N], r[N];
int p[N];
vector<int>Num[N];
void solve()
{
cin >> n >> k;
int mx = 0, num = 0, mxid = 0;
for (int i = 1; i <= k; i ++)
{
cin >> l[i] >> r[i];
for (int j = l[i] + 1; j <= r[i]; j ++)p[j] = j - 1;
p[l[i]] = 0;
if (r[i] - l[i] + 1 > mx)mx = r[i] - l[i] + 1, num = 1, mxid = i;
else if(r[i] - l[i] + 1 == mx)num ++;
}
if (num * mx == n) {cout << "IMPOSSIBLE\n"; return ;}
for (int i = 1; i <= k; i ++) if (i != mxid)Num[r[i] - l[i] + 1].push_back(i);
for (int j = r[mxid] - 1, L = 1; j >= l[mxid]; j --, L ++)
{
for (auto id : Num[L]) p[l[id]] = j;
}
for (int i = 1; i <= n; i ++) cout << p[i] << ' '; cout << '\n';
for (int i = 1; i <= n; i ++) Num[i].clear();
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T = 1;
cin >> T;
for (int i = 1; i <= T; i++)
solve();
return 0;
}
/*
3
12 5
1 5
9 11
7 8
6 6
12 12
4 3
1 1
4 4
2 3
2 2
1 1
2 2
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 20096kb
input:
3 12 5 1 5 9 11 7 8 6 6 12 12 4 3 1 1 4 4 2 3 2 2 1 1 2 2
output:
0 1 2 3 4 4 3 7 2 9 10 4 2 0 2 2 IMPOSSIBLE
result:
ok Correct. (3 test cases)
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 19268kb
input:
10 1 1 1 1 100000 1 1 100000 12 4 1 3 4 6 7 9 10 12 6 3 4 6 2 3 1 1 8999 3 1 3000 3001 6000 6001 8999 14 4 1 3 4 6 7 10 11 14 17 5 1 3 4 6 7 10 11 14 15 17 19999 2 1 9999 10000 19999 1 1 1 1 5 3 1 1 2 3 4 5
output:
IMPOSSIBLE IMPOSSIBLE IMPOSSIBLE 5 4 2 0 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 ...
result:
wrong answer Case 1, jury find a solution while participant not. (test case 1)