제출 #1311329

#제출 시각아이디문제언어결과실행 시간메모리
1311329AhmadAlhussain기지국 (IOI20_stations)C++20
0 / 100
387 ms492 KiB
#include<bits/stdc++.h>
#include <vector>
using namespace std;
const int N=1005;
bool check(int a,int b) {
    if(b<a) {
        return false;
    }
    if(b>>(__builtin_clz(a)-__builtin_clz(b))==a) {
        return true;
    }
    return false;
}
int a[N]={};vector<int>wss[N];
void dfs(int node,int past,int cnt) {
    a[node]=cnt;
    vector<int>v={2*cnt+1,2*cnt};
    for(int i:wss[node]) {
        if(i!=past) {
            dfs(i,node,v.back());
            v.pop_back();
        }
    }
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
    int cnt[N]={};
    std::vector<int> labels(n);
    for (int i = 0; i < n-1; i++) {
        wss[u[i]].push_back(v[i]);
        wss[v[i]].push_back(u[i]);
        cnt[u[i]]++;
        cnt[v[i]]++;
    }
    for(int i=0;i<n;i++) {
        labels[i]=i+1;
    }
    for(int i=0;i<n;i++) {
        wss[i].clear();
        a[i]=0;
    }
    return labels;
}

int find_next_station(int s, int t, std::vector<int> c) {
    if(c.size()>=2&&check(c[c.size()-2],t)){
        return c[c.size()-2];
    }
    if(c.size()>=1&&check(c[c.size()-1],t)){
        return c[c.size()-1];
    }
    return c[0];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...