QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#876811 | #9678. 网友小 Z 的树 | orchardist | 0 | 0ms | 16312kb | C++17 | 1.2kb | 2025-01-31 13:24:54 | 2025-01-31 13:24:55 |
Judging History
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=n*3;
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=1;i<=n;i++)
if(d12[i]==mn12){
if(!in(i,1,2)) mn12=2;
break;
}
}
if(mn13==4){
for(int i=1;i<=n;i++)
if(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;
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: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 16312kb
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%