Submission #1370496

#TimeUsernameProblemLanguageResultExecution timeMemory
1370496FaresSTHMagenta (COCI21_magenta)C++20
30 / 110
21 ms7460 KiB
#include"bits/stdc++.h"
using namespace std;
using ll=long long;
#define S second
#define F first 
const int mxn=1e5+5;
int in[mxn],out[mxn],d[mxn],p[mxn],t;
vector<int>g[mxn];
void dfs(int i=1){
    in[i]=++t;
    d[i]=d[p[i]]+1;
    for(int j:g[i])if(j!=p[i]){
        p[j]=i;
        dfs(j);
    }
    out[i]=++t;
}
int dis(int a,int b){
    int res=0;
    if(d[a]>d[b])swap(a,b);
    while(!(in[a]<in[b]&&out[b]<out[a]))a=p[a],res++;
    return res+d[b]-d[a];
}
int main(){
    cin.tie(0)->sync_with_stdio(0);
    int n,a,b;
    cin>>n>>a>>b;
    for(int i=1,u,v;i<n;i++){
        string s;
        cin>>u>>v>>s;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs();
    cout<<((d[a]+d[b])%2==0?"Paula":"Marin");
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...