Submission #321883

#TimeUsernameProblemLanguageResultExecution timeMemory
321883wildturtleStations (IOI20_stations)C++14
10 / 100
1067 ms1108 KiB
#include "stations.h"
#include<bits/stdc++.h>
using namespace std;
int A[1003],l,in[1003],out[1003],don[1003],mp[1003];
vector <int> v1[1003];
void dfs(int x,int y,int z) {
    l++; 
    in[x]=l;
    don[x]=z;
    for(int i=0;i<v1[x].size();i++) {
        if(v1[x][i]==y) continue;
        dfs(v1[x][i],x,z+1);
    }
    l++;
    out[x]=l;
}
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;i++) {
	v1[i].clear();
	}
    l=0;
	for(int i=0;i<n-1;i++) {
	    v1[u[i]].push_back(v[i]);
	    v1[v[i]].push_back(u[i]);
	}
	dfs(0,-1,0);
	for(int i=0;i<n;i++) {
	    if(don[i]%2==0) A[i]=in[i];
	    else A[i]=out[i];
	}
	sort(A,A+n);
	for(int i=0;i<n;i++) {
	    mp[A[i]]=i;
	}
	for(int i=0;i<n;i++) {
	    if(don[i]%2==0) labels[i]=mp[in[i]];
	    else labels[i]=mp[out[i]];
	}
	return labels;
}
int find_next_station(int s, int t, std::vector<int> c) {
    if(s<c[0]) {
        for(int i=0;i<c.size()-1;i++) {
            if(i==0) {
                if(s+1<=t && t<=c[i]) return c[i];
            }
            else if(c[i-1]+1<=t && t<=c[i]) return c[i];
        }
        return c[c.size()-1];
    }
    else {
        for(int i=0;i<c.size();i++) {
            if(i==c.size()-1) {
                if(c[i]<=t && t<=s-1) return c[i];
            }
            else if(c[i]<=t && t<=c[i+1]-1) return c[i];
        }
        return c[0];
    }
}

Compilation message (stderr)

stations.cpp: In function 'void dfs(int, int, int)':
stations.cpp:10:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i=0;i<v1[x].size();i++) {
      |                 ~^~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:44:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |         for(int i=0;i<c.size()-1;i++) {
      |                     ~^~~~~~~~~~~
stations.cpp:53:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |         for(int i=0;i<c.size();i++) {
      |                     ~^~~~~~~~~
stations.cpp:54:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |             if(i==c.size()-1) {
      |                ~^~~~~~~~~~~~
#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...