Submission #871393

#TimeUsernameProblemLanguageResultExecution timeMemory
871393andrei_boacaStations (IOI20_stations)C++17
0 / 100
532 ms4516 KiB
#include "stations.h"
#include <bits/stdc++.h>
#include <vector>
//#include "stub.cpp"
using namespace std;
const int baza=1e8;
vector<int> muchii[1005];
int dist[1005][1005];
bool use[1005];
int n,k;
vector<int> ord;
vector<int> L;
int ch,ind;
void dfs(int nod,int start)
{
    use[nod]=1;
    for(int i:muchii[nod])
        if(!use[i])
        {
            dist[start][i]=dist[start][nod]+1;
            dfs(i,start);
        }
}
std::vector<int> label(int N, int K, std::vector<int> u, std::vector<int> v)
{
    n=N;
    k=K;
    L.clear();
    L.resize(n);
    ord.clear();
    for(int i=0;i<n;i++)
    {
        use[i]=0;
        muchii[i].clear();
    }
    for(int i=0;i<u.size();i++)
    {
        int a=u[i];
        int b=v[i];
        muchii[a].push_back(b);
        muchii[b].push_back(a);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            use[j]=0;
            dist[i][j]=0;
        }
        dist[i][i]=0;
        dfs(i,i);
    }
    for(int i=0;i<n;i++)
    {
        int lbl=i*baza;
        for(int j=0,put=1;j<n;j++,put*=10)
            if(j!=i)
            {
                for(int p:muchii[i])
                    if(dist[i][p]+dist[p][j]==dist[i][j])
                        lbl+=put*p;
            }
        L[i]=lbl;
    }
    return L;
}

int find_next_station(int s, int t, std::vector<int> c)
{
    int a=s/baza;
    int b=t/baza;
    int who=0;
    for(int j=0,put=1;j<n;j++,put*=10)
    {
        int x=(s/put)%10;
        if(j==b)
        {
            who=x;
            break;
        }
    }
    for(int i:c)
        if(i/baza==who)
            return i;
}

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:36:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for(int i=0;i<u.size();i++)
      |                 ~^~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:70:9: warning: unused variable 'a' [-Wunused-variable]
   70 |     int a=s/baza;
      |         ^
stations.cpp:85:1: warning: control reaches end of non-void function [-Wreturn-type]
   85 | }
      | ^
#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...