Submission #1209809

#TimeUsernameProblemLanguageResultExecution timeMemory
1209809a.pendovStations (IOI20_stations)C++20
Compilation error
0 ms0 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;

const long long MAXN=1009;
long long sz[MAXN];
long long ans[MAXN];
bool vis[MAXN];
vector<int> edg[MAXN];

long long dfs(int start)
{
    sz[start]=1;
    vis[start]=1;
    for(auto i:edg[start])
    {
        if(!vis[i])
        sz[start]+=dfs(i);
    }
    return sz[start];
}

void solve(int start,bool b,int l,int r)
{
    vis[start]=0;
    if(b)
    {
        ans[start]=r;
        r--;
    }
    else
    {
        ans[start]=l;
        l++;
    }

    for(auto i:edg[start])
    {
        if(vis[i]){
        solve(i,!b,l,l+sz[i]-1);
        l+=sz[i];}
    }
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v)
{
    std::vector<int> labels(n);
    for(int i=0; i<n-1; i++)
    {
        edg[u[i]].push_back(v[i]);
        edg[v[i]].push_back(u[i]);
    }
    dfs(0);
    solve(0,1,0,n-1);
    bitset<n> bs;
    bool f=0;
    for(int i=0;i<n;i++)
    {
        if(bs[ans[i]])f=1;
        bs[ans[i]]=1;
    }
    if(!f)for(int i=0; i<n; i++)labels[i]=ans[i];
    else for(int i=0; i<n; i++)labels[i]=i;
    return labels;
}

int find_next_station(int s, int t, std::vector<int> c)
{
    sort(c.begin(),c.end());
    return 0;
    if(s<c[0])
    {
        if(t<s)return c[c.size()-1];
        if(t>=c[c.size()-1])return c[c.size()-1];
        for(int i=0; i<c.size()-1; i++)
        {
            if(t<=c[i])return c[i];
        }
    }
    else
    {
        if(t>s)return c[0];
        if(t<=c[0])return c[0];
        for(int i=c.size()-1; i>0; i--)
        {
            if(t<=c[i])return c[i];
        }
    }

    return 0;
}

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:55:13: error: 'n' is not a constant expression
   55 |     bitset<n> bs;
      |             ^
stations.cpp:55:13: note: in template argument for type 'long unsigned int'
stations.cpp:59:14: error: invalid types 'int[long long int]' for array subscript
   59 |         if(bs[ans[i]])f=1;
      |              ^
stations.cpp:60:11: error: invalid types 'int[long long int]' for array subscript
   60 |         bs[ans[i]]=1;
      |           ^