제출 #322078

#제출 시각아이디문제언어결과실행 시간메모리
322078gurkot기지국 (IOI20_stations)C++14
100 / 100
1261 ms1372 KiB
#include "stations.h"
#include <vector>
#include <iostream> 
using namespace std; 
int fix[1000],lab[1000],timer,lev;
vector <int> gr[1000];
 
void dfs(int u){  
 fix[u]=1; lev++;
 if((lev&1)==0) lab[u]=timer++;     
    
 for(int i=0;i<(int)gr[u].size();i++)
  if(fix[gr[u][i]]==0) dfs(gr[u][i]);		
	
 if((lev&1)==1) lab[u]=timer++;
 lev--;	
}
 
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
 vector <int> labels; labels.resize(n); 
 for(int i=0;i<n;i++) {
  gr[i].clear();  lab[i]=fix[i]=0;
 }
	
 for (int i=0; i<(int)u.size(); i++) {
  gr[u[i]].push_back(v[i]);
  gr[v[i]].push_back(u[i]);
 }  

 timer=0; lev=-1;
 dfs(0);
 for(int i=0;i<n;i++)   labels[i]=lab[i];  
 return labels;
} 
int find_next_station(int s, int t, vector<int> c) {
 if(s<c[0]){
  c.insert(c.begin(),s);
  for(int i=1; i<(int)c.size()-1; i++)
	if(t<=c[i] && t>c[i-1]) return c[i];			
  return c[c.size()-1];
 } else {
  c.push_back(s);
  for(int i=1; i<(int)c.size()-1; i++)
   if(t>=c[i] && t<c[i+1]) return c[i];		
  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...