QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#767587#9733. Heavy-light Decompositionwht11#WA 3ms5696kbC++201.4kb2024-11-20 21:20:422024-11-20 21:20:43

Judging History

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

  • [2024-11-20 21:20:43]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:5696kb
  • [2024-11-20 21:20:42]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, l, r) for (int i = l; i <= r; i++)
const int N = 1e5 + 10;
int n, k;
struct node
{
    int l, r, len;
    bool operator<(const node &a) const { return len > a.len; }
} a[N];
int ans[N];
void solve()
{
    cin >> n >> k;
    rep(i, 1, k)
    {
        cin >> a[i].l >> a[i].r;
        a[i].len = a[i].r - a[i].l + 1;
    }
    sort(a + 1, a + 1 + k);
    if (a[1].len > a[2].len)
    {
        rep(i, 1, k)
        {
            rep(j, a[i].l + 1, a[i].r)
            {
                ans[j] = j - 1;
            }
            if (i != 1)
                ans[a[i].l] = a[1].l;
        }
    }
    else
    {

        rep(i, 1, k)
        {
            rep(j, a[i].l + 1, a[i].r)
            {
                ans[j] = j - 1;
            }
            if (i != 1 && i != k)
                ans[a[i].l] = a[1].l;
        }
        if (a[k].len > a[1].len - 2)
        {
            return cout << "IMPOSSIBLE" << endl, void();
        }
        int j, cnt;
        for (j = a[1].r, cnt = 1; cnt <= a[k].len; j--, cnt++)
            ;
        ans[a[k].l] = j;
    }
    ans[a[1].l] = 0;
    rep(i, 1, n) cout << ans[i] << " ";
    cout << endl;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    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: 5696kb

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 1 1 7 1 9 10 1 
2 0 2 2 
IMPOSSIBLE

result:

ok Correct. (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 3ms
memory: 4348kb

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:

0 
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101...

result:

wrong answer Case 9, jury find a solution while participant not. (test case 9)