제출 #1353891

#제출 시각아이디문제언어결과실행 시간메모리
1353891marizaTheseus (CEOI25_theseus)C++20
24 / 100
43 ms6332 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll N=1e4;
const ll INF=1e18;

vector<int> paint(int n, vector<pair<int,int>> e, int t){
    t--;
    vector<ll> g[n];
    for(auto i:e){
        ll u, v;
        tie(u,v)=i; u--; v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }

    ll dist[n];
    for(ll i=0; i<n; i++) dist[i]=INF;
    dist[t]=0;
    queue<ll> q; q.push(t);
    bool vis[n]={};
    while(!q.empty()){
        ll curr=q.front();
        q.pop();

        if(vis[curr]) continue;
        vis[curr]=1;

        // cout<<curr<<endl;

        for(auto nxt:g[curr]){
            dist[nxt]=min(dist[nxt],dist[curr]+1);
            q.push(nxt);
        }
    }

    // for(ll i=0; i<n; i++){
    //     cout<<i<<": "<<dist[i]<<endl;
    // }

    vector<int> ans;
    for(auto i:e){
        ll u, v;
        tie(u,v)=i; u--; v--;
        
        if(dist[v]<dist[u]){  // u -> v
            if(u<v) ans.push_back(1);
            else ans.push_back(0);
        }
        else if(dist[v]>dist[u]){  // v -> u
            if(u>v) ans.push_back(1);
            else ans.push_back(0);
        }
    }
    return ans;
}

int travel(int n, int u, vector<pair<int,int>> nxt) {
    for(auto i:nxt){
        if((i.second==1 && i.first>u) || (i.second==0 && i.first<u)) return i.first;
    }
    return nxt[0].first;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…