QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#868157#9678. 网友小 Z 的树ChiFAN0 0ms14396kbC++141.9kb2025-01-24 13:36:332025-01-24 13:36:36

Judging History

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

  • [2025-01-24 13:36:36]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:14396kb
  • [2025-01-24 13:36:33]
  • 提交

answer

#include "diameter.h"
#include <bits/stdc++.h>
using namespace std;

pair<int, int> find_diameter(int subid, int n) {
    int x=1,y=2,z=3;
    int now=query(x,y,z);
    for(int i=1;i<=n;i++){
        if(i==x||i==y||i==z) continue;
        int len=query(i,y,z);
        if(len>now){
            x=i;
            now=len;
        }
    }
    for(int i=1;i<=n;i++){
        if(i==x||i==y||i==z) continue;
        int len=query(x,i,z);
        if(len>now){
            y=i;
            now=len;
        }
    }
    for(int i=1;i<=n;i++){
        if(i==x||i==y||i==z) continue;
        int len=query(x,y,i);
        if(len>now){
            z=i;
            now=len;
        }
    }
    if(n<=50000){
        int L=now,X=x,Y=y,Z=z;
        for(int i=1;i<=n;i++){
            if(i==x||i==y||i==z) continue;
            int len=query(i,y,z);
            if(len<now){
                x=i;
                now=len;
            }
        }
        int yz=now;
        swap(x,X);
        now=L;
        
        for(int i=1;i<=n;i++){
            if(i==x||i==y||i==z) continue;
            int len=query(x,i,z);
            if(len<now){
                y=i;
                now=len;
            }
        }
        int xz=now;
        swap(y,Y);
        now=L;
        
        for(int i=1;i<=n;i++){
            if(i==x||i==y||i==z) continue;
            int len=query(x,y,i);
            if(len<now){
                z=i;
                now=len;
            }
        }
        int xy=now;
        swap(z,Z);
        now=L;
        
        if(xy>=yz&&xy>=xz){
            z=Z;
        }
        else if(xz>=xy&&xz>=yz){
            y=Y;
        }
        else x=X;
        if(in(x,y,z)){
            return {y,z};
        }
        else if(in(y,x,z)){
            return {x,z};
        }
        return {x,y};
    }
}
/*
0 1
5
1 2
2 3
1 4
1 5

g++ grader.cpp diameter.cpp -o diameter -O2 -lm
*/

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 14396kb

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:

WA

result:

wrong answer Wrong Answer

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

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:

0%