QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#785941#9733. Heavy-light DecompositionshengZzz#WA 16ms4016kbC++201.2kb2024-11-26 19:40:002024-11-26 19:40:00

Judging History

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

  • [2024-11-26 19:40:00]
  • 评测
  • 测评结果:WA
  • 用时:16ms
  • 内存:4016kb
  • [2024-11-26 19:40:00]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int fa[N],n,k;
struct chain {
    int l,r;
    bool operator < (const chain & node) {
        return r-l+1>node.r-node.l+1;
    }
} p[N];

void solve() {
    scanf("%d%d",&n,&k);
    for(int i=1;i<=k;i++) {
        scanf("%d%d",&p[i].l,&p[i].r);
        for(int j=p[i].l+1;j<=p[i].r;j++) fa[j]=j-1;
    }
    if(n==1) {
        cout<<"0\n";
        return;
    }
    sort(p+1,p+k+1);
    if(p[1].r==p[1].l) {
        cout<<"IMPOSSIBLE\n";
        return;
    }
    int tot=p[1].r-p[1].l;
    for(int i=p[1].r,R=k,len=0;i>=p[1].l;i--,len++) {
        while(p[R].r-p[R].l+1<=len) {
            fa[p[R].l]=i;
            if(i!=p[1].l) tot+=p[R].r-p[R].l+1;
            R--;
        }
    }
    for(int i=2;p[i].r-p[i].l==p[1].r-p[1].l;i++) {
        if(p[i].r-p[i].l+1>tot) {
            cout<<"IMPOSSIBLE\n";
            return;
        }
        fa[p[i].l]=p[1].l;
    }
    for(int i=1;i<=n;i++) cout<<fa[i]<<" ";cout<<"\n";
    
}

void init() {
    for(int i=1;i<=n;i++) fa[i]=0;
}

int main() {
    int T;scanf("%d",&T);
    while(T--) {
        init(); solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3628kb

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: 0
Accepted
time: 6ms
memory: 4016kb

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:

ok Correct. (10 test cases)

Test #3:

score: 0
Accepted
time: 2ms
memory: 3892kb

input:

5
11 5
1 3
4 6
7 8
9 10
11 11
39998 4
1 10000
10001 20000
20001 30000
30001 39998
49000 5
1 10000
39999 49000
10001 20000
20001 30000
30001 39998
16 5
1 1
2 3
4 6
7 11
12 16
10 5
1 2
3 4
5 6
7 8
9 10

output:

0 1 2 1 4 5 1 7 1 9 2 
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...

result:

ok Correct. (5 test cases)

Test #4:

score: 0
Accepted
time: 16ms
memory: 3804kb

input:

10000
20 6
17 20
7 9
1 3
4 6
10 12
13 16
20 12
7 7
4 4
10 10
8 8
3 3
1 1
6 6
2 2
5 5
11 11
12 20
9 9
20 16
11 11
5 6
9 9
2 2
12 12
1 1
18 20
8 8
15 15
13 13
16 17
10 10
14 14
3 3
4 4
7 7
20 16
6 7
10 10
13 13
18 18
19 19
14 14
1 1
20 20
8 8
4 5
9 9
2 3
12 12
11 11
16 17
15 15
20 5
1 1
6 6
7 12
13 20...

output:

IMPOSSIBLE
19 19 19 19 19 19 19 19 19 19 19 0 12 13 14 15 16 17 18 19 
19 19 19 19 18 5 19 19 19 19 19 19 19 19 19 18 16 0 18 19 
IMPOSSIBLE
19 16 2 3 4 19 14 7 8 9 10 11 0 13 14 15 16 17 18 19 
IMPOSSIBLE
19 13 2 3 4 5 6 7 0 9 10 11 12 13 14 15 16 17 18 19 
16 1 2 3 16 5 6 7 19 0 10 11 12 13 14 15 ...

result:

ok Correct. (10000 test cases)

Test #5:

score: -100
Wrong Answer
time: 14ms
memory: 3624kb

input:

20000
13 12
12 12
7 7
1 1
5 5
9 9
8 8
13 13
4 4
3 3
6 6
10 11
2 2
16 8
4 4
5 5
1 1
6 6
7 7
3 3
8 16
2 2
20 17
19 19
1 1
17 18
14 14
4 4
13 13
7 7
5 5
11 11
15 15
16 16
20 20
12 12
9 10
8 8
2 3
6 6
17 9
3 4
2 2
9 10
7 8
5 6
11 12
1 1
15 17
13 14
6 2
2 6
1 1
1 1
1 1
10 2
5 10
1 4
17 17
3 3
12 12
15 15...

output:

10 10 10 10 10 10 10 10 10 0 10 10 10 
15 15 15 15 15 15 15 0 8 9 10 11 12 13 14 15 
IMPOSSIBLE
16 16 15 3 15 5 15 7 15 9 15 11 15 13 0 15 16 
5 0 2 3 4 5 
0
6 1 2 3 0 5 6 7 8 9 
IMPOSSIBLE
0 1 2 3 4 5 6 7 8 9 10 11 12 13 
IMPOSSIBLE
IMPOSSIBLE
15 15 15 15 0 5 6 7 8 9 10 11 12 13 14 15 
0 1 
IMPOSSI...

result:

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