Submission #992978

#TimeUsernameProblemLanguageResultExecution timeMemory
992978vjudge1Stations (IOI20_stations)C++17
100 / 100
665 ms1444 KiB
#include <bits/stdc++.h> #include "stations.h" using namespace std; #define ll long long #define endl '\n' #define all(a) a.begin(),a.end() const int mod = 1e7 + 7; const int N = 1003; vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<int> labels(n); vector<vector<int>> node(n); for (int i=0;i<int(u.size());i++){ node[u[i]].push_back(v[i]); node[v[i]].push_back(u[i]); } int t = 0; function<void(int,int,int)> dfs = [&](int i,int p,bool cur){ if (cur) labels[i]=t++; for (auto it : node[i]){ if (it==p) continue; dfs(it,i,cur^1); } if (!cur) labels[i]=t++; }; dfs(0,-1,0); return labels; } int find_next_station(int s, int t, vector<int> c) { int flag = 1;// 1 im the max, 0 am the min int mx = s; int mn = s; if (c.size()==1) return c[0]; sort(all(c)); for (auto it : c){ if (it==t) return it; mx = max(mx,it); mn = min(mn,it); } if (s==mx){ // am container if (t > s){ return c[0]; } for (int i=int(c.size())-1;i>=1;i--){ if (c[i] <= t) return c[i]; } return c[0]; } else { // am the smallest if (t < s){ return c.back(); } for (int i=0;i<int(c.size())-1;i++){ if (c[i] >= t) return c[i]; } return c.back(); } }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:31:9: warning: unused variable 'flag' [-Wunused-variable]
   31 |     int flag = 1;// 1 im the max, 0 am the min
      |         ^~~~
#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...