QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#84383#5651. Parmigiana With SeafoodPdw2007WA 2ms3676kbC++141.0kb2023-03-06 14:12:202023-03-06 14:12:23

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-06 14:12:23]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3676kb
  • [2023-03-06 14:12:20]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,ans;
int tot,head[N];
struct edge{
    int to,nxt;
}e[N<<1];
int d[N],mx;
void add(int x,int y) {
    tot++;
    e[tot].to=y;e[tot].nxt=head[x];head[x]=tot;
    return;
}
int mx1,mx2,mx3;
void dfs(int x,int fa) {
    d[x]=d[fa]+1;
    if(d[x]&1) mx=max(mx,x);
    else if(x!=n) {
        if(x>mx1) mx3=mx2,mx2=mx1,mx1=x;
        else if(x>mx2) mx3=mx2,mx2=x;
        else if(x>mx3) mx3=x;
    }

    int koishi=0;
    for(int i=head[x];i;i=e[i].nxt) {
        int to=e[i].to;
        if(to==fa) continue;
        dfs(to,x);
        koishi++;
    }
    if(!koishi) ans=max(ans,x);
    if(koishi==1&&fa==0) ans=max(ans,x);
    return;
}
int main() {
    scanf("%d",&n);
    for(int i=1,x,y;i<n;i++) {
        scanf("%d%d",&x,&y);
        add(x,y);add(y,x);
    }
    if(!(n&1)) {
        printf("%d",n);
        return 0;
    }
    d[0]=-1;
    dfs(n,0);
    // ans=max(ans,mx);
    ans=max(ans,mx3);
    printf("%d\n",ans);
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3676kb

input:

4
1 2
1 3
1 4

output:

4

result:

ok single line: '4'

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3560kb

input:

5
1 5
5 3
3 4
4 2

output:

2

result:

wrong answer 1st lines differ - expected: '3', found: '2'