Submission #1078423

#TimeUsernameProblemLanguageResultExecution timeMemory
1078423TrumlingStations (IOI20_stations)C++14
21 / 100
624 ms1016 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define F first #define S second #define enter cout<<'\n'; #define INF 99999999999999999 #define MOD 1000000007 #define all(x) x.begin(),x.end() #include "stations.h" #include <vector> #include<bits/stdc++.h> using namespace std; #define F first #define S second #define all(x) x.begin(),x.end() typedef long long ll; #define pb push_back #define INF 99999999999 ll nn; vector<vector<int>>g; ll here=0; vector<int>labels; void dfs(int i,int id,int start,int pre) { labels[start]=i*1000 + id; //cout<<labels[start]<<' '; for(auto x:g[start]) if(pre!=x) dfs(i,id+1,x,start); return ; } vector<int> label(int n, int k, vector<int> u, vector<int> v) { nn=n; g.assign(n,vector<int>()); labels.assign(n,0); vector<bool>cnt(n,0); here=0; for (int i = 0; i < n-1; i++) { g[u[i]].pb(v[i]); g[v[i]].pb(u[i]); if(g[u[i]].size()>2) here=u[i]; if(g[v[i]].size()>2) here=v[i]; if(g[u[i]].size()==2) cnt[u[i]]=1; if(g[v[i]].size()==2) cnt[v[i]]=1; } if(g[here].size()<=2) for(int i=0;i<n;i++) if(!cnt[i]) { here=i; break; } //cout<<here<<'\n'; for(int i=0;i<g[here].size();i++) dfs(i,1,g[here][i],here); //for(int i=0;i<n;i++) //cout<<labels[i]<<' '; return labels; } int find_next_station(int s, int t, vector<int> c) { if(c.size()>2) { ll ans; for(int l:c) if(t>=l && (t-l)<1000) { ans=l; break; } return ans; //assert(0); } int mini=INF; for(auto x:c) mini=min(x,mini); if(t<s) return mini; if(s/1000==t/1000) return s+1; else return mini; }

Compilation message (stderr)

stations.cpp:25: warning: "INF" redefined
   25 |     #define INF 99999999999
      | 
stations.cpp:11: note: this is the location of the previous definition
   11 | #define INF 99999999999999999
      | 
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:79:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |   for(int i=0;i<g[here].size();i++)
      |               ~^~~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:25:17: warning: overflow in conversion from 'long int' to 'int' changes value from '99999999999' to '1215752191' [-Woverflow]
   25 |     #define INF 99999999999
      |                 ^~~~~~~~~~~
stations.cpp:107:12: note: in expansion of macro 'INF'
  107 |   int mini=INF;
      |            ^~~
stations.cpp:99:11: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   99 |    return ans;
      |           ^~~
#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...