QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#876825#9678. 网友小 Z 的树orchardist16 17ms18128kbC++171.3kb2025-01-31 13:36:492025-01-31 13:36:56

Judging History

This is the latest submission verdict.

  • [2025-01-31 13:36:56]
  • Judged
  • Verdict: 16
  • Time: 17ms
  • Memory: 18128kb
  • [2025-01-31 13:36:49]
  • Submitted

answer

#include "diameter.h"
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int d12[N],d13[N],d23[N],d1[N],d123,mn12,mn13,mn23;
pair<int, int> find_diameter(int subid, int n) {
	if(n==1) return {1,1};
	if(n==2) return {1,2};
	if(n==3){
		if(in(1,2,3)) return {2,3};
		if(in(2,1,3)) return {1,3};
		return {1,2};
	}
	d123=query(1,2,3);
	mn12=mn13=d123;
	for(int i=4;i<=n;i++){
		d12[i]=query(1,2,i);
		d13[i]=query(1,3,i);
		d23[i]=query(2,3,i);
		mn12=min(mn12,d12[i]);
		mn13=min(mn13,d13[i]);
	}
	if(mn12==4){
		for(int i=3;i<=n;i++)
			if(d12[i]==mn12){
				if(!in(i,1,2)) mn12=2;
				break;
			}
	}
	if(mn13==4){
		for(int i=2;i<=n;i++)
			if(i!=3&&d13[i]==mn13){
				if(!in(i,1,3)) mn13=2;
				break;
			}
	}
	mn12/=2;mn13/=2;
	mn23=d123-mn12-mn13;
	int mx=2;
	if(mn13>mn12) mx=3;
	d1[2]=mn12,d1[3]=mn13;
	for(int i=4;i<=n;i++){
		d1[i]=(d12[i]+d13[i]+d23[i]-mn12-mn13-mn23)/2-d23[i]+mn23;
		if(d1[i]>d1[mx]) mx=i;
	}
	int ans=d1[mx],id=1;
	d12[3]=d13[2]=d123;
	for(int i=2;i<=n;i++){
		if(i==mx) continue;
		int now=-d1[i]-d1[mx];
		if(i==2) now+=d12[mx];
		else if(i==3) now+=d13[mx];
		else if(mx==2) now+=d12[i];
		else if(mx==3) now+=d13[i];
		else now+=query(1,mx,i);
		if(now>ans) ans=now,id=i;
	}
	return {mx,id};
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 16
Accepted

Test #1:

score: 16
Accepted
time: 1ms
memory: 14368kb

input:

1 100
25
1 3
2 18
3 8
4 18
5 14
6 22
7 18
8 10
9 11
10 12
11 25
12 16
13 11
14 17
15 17
16 25
17 2
18 20
19 18
20 12
21 1
22 17
23 14
24 1
50
1 37
2 27
3 10
4 25
5 16
6 17
7 10
8 36
9 16
10 6
11 48
12 2
13 28
14 30
15 10
16 44
17 31
18 1
19 6
20 7
21 30
22 42
23 45
24 23
25 27
26 39
27 45
28 48
29 4...

output:

correct

result:

ok Correct

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #2:

score: 0
Wrong Answer
time: 17ms
memory: 18128kb

input:

2 2006
42
1 32
2 4
3 6
4 29
5 1
6 42
7 10
8 16
9 6
10 25
11 42
12 8
13 36
14 8
15 17
16 3
17 6
18 21
19 23
20 31
21 42
22 6
23 32
24 7
25 27
26 34
27 31
28 6
29 41
30 20
31 9
32 7
33 3
34 5
35 5
36 1
37 8
38 14
39 15
40 12
41 22
95
1 94
2 88
3 13
4 71
5 37
6 45
7 87
8 24
9 76
10 54
11 69
12 95
13 90...

output:

WA

result:

wrong answer Wrong Answer

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #3:

0%

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Skipped

Dependency #6:

0%

Subtask #8:

score: 0
Skipped

Dependency #7:

0%

Subtask #9:

score: 0
Skipped

Dependency #8:

0%

Subtask #10:

score: 0
Skipped

Dependency #9:

0%

Subtask #11:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%