#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef pair<int,int> pii;
typedef pair<pii,int> ipii;
const int MAXN = 1e3+10;
const int MAX = 1e3;
int n, k;
vector <int> adj[MAXN], dw[MAXN];
vector <int> lab;
int chi[MAXN], val[MAXN], cnt;
void dfs(int nw, int par){ // build val, tergantung dfs
val[nw] = cnt++;
for(auto nx : adj[nw]){
if(nx == par) continue;
dw[nw].pb(nx);
dfs(nx, nw);
}
}
void bd(int nw){
chi[nw] = val[nw];
for(auto nx : dw[nw]){
bd(nx);
chi[nw] = max(chi[nw], chi[nx]);
}
}
vector<int> label(int N, int K, vector<int> u, vector<int> v) {
n = N; k = K;
lab.clear(); lab.resize(n); cnt = 0;
for(int i=0; i<=n; i++){
adj[i].clear(); dw[i].clear();
chi[i] = -1; val[i] = 0;
}
for(int i=0; i<n-1; i++){
adj[u[i]].pb(v[i]); adj[v[i]].pb(u[i]);
}
dfs(0, -1); bd(0);
for(int i=0; i<n; i++){
lab[i] = val[i] + chi[i]*MAX;
}
//for(int i=0; i<n; i++) cout << i << ' ' << val[i] << ' ' << chi[i] << ' '<< lab[i] << " p\n";
return lab;
}
int find_next_station(int s, int t, vector<int> c) { // c sorted
//cout << s << ' ' << t << " pp\n";
int num = c.size();
vector <pii> val(num);
for(int i=0; i<c.size(); i++){
val[i].fi = c[i]%MAX; val[i].se = c[i] / MAX;
// idx, max idx di subtree
}
sort(val.begin(), val.end()); // based on idx
//for(auto in : val) cout << in.fi << ' '<< in.se << " xx\n";
int valt = t%MAX, idx = -1;
if((s%MAX) ==0){ // s itu root
for(int i=0; i<val.size(); i++){
if(val[i].fi <= valt){
idx = i;
}
}
return (val[idx].fi + val[idx].se*MAX);
}
int mx = s/MAX; // kalo nx==0, brati gk ada nx
for(int i=0; i<val.size(); i++){
if(val[i].fi <= valt){
idx = i;
}
}
if(valt < (s%MAX) || valt > mx) idx = 0; // parent
return (val[idx].fi + val[idx].se*MAX);
}
Compilation message
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:59:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
59 | for(int i=0; i<c.size(); i++){
| ~^~~~~~~~~
stations.cpp:68:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
68 | for(int i=0; i<val.size(); i++){
| ~^~~~~~~~~~~
stations.cpp:77:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
77 | for(int i=0; i<val.size(); i++){
| ~^~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
636 KB |
Invalid labels (values out of range). scenario=0, k=1000, vertex=0, label=9000 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
3 ms |
608 KB |
Invalid labels (values out of range). scenario=0, k=1000, vertex=0, label=995000 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
340 ms |
984 KB |
Output is correct |
2 |
Correct |
295 ms |
984 KB |
Output is correct |
3 |
Correct |
570 ms |
684 KB |
Output is correct |
4 |
Correct |
385 ms |
684 KB |
Output is correct |
5 |
Correct |
439 ms |
684 KB |
Output is correct |
6 |
Correct |
252 ms |
976 KB |
Output is correct |
7 |
Correct |
268 ms |
940 KB |
Output is correct |
8 |
Correct |
2 ms |
768 KB |
Output is correct |
9 |
Correct |
2 ms |
768 KB |
Output is correct |
10 |
Correct |
0 ms |
768 KB |
Output is correct |
11 |
Correct |
395 ms |
688 KB |
Output is correct |
12 |
Correct |
316 ms |
1116 KB |
Output is correct |
13 |
Correct |
341 ms |
1140 KB |
Output is correct |
14 |
Correct |
314 ms |
684 KB |
Output is correct |
15 |
Correct |
42 ms |
768 KB |
Output is correct |
16 |
Correct |
42 ms |
964 KB |
Output is correct |
17 |
Correct |
64 ms |
916 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
545 ms |
684 KB |
Output is correct |
2 |
Correct |
434 ms |
684 KB |
Output is correct |
3 |
Correct |
372 ms |
684 KB |
Output is correct |
4 |
Correct |
1 ms |
768 KB |
Output is correct |
5 |
Correct |
2 ms |
772 KB |
Output is correct |
6 |
Correct |
0 ms |
768 KB |
Output is correct |
7 |
Correct |
371 ms |
820 KB |
Output is correct |
8 |
Correct |
516 ms |
684 KB |
Output is correct |
9 |
Correct |
390 ms |
940 KB |
Output is correct |
10 |
Correct |
343 ms |
684 KB |
Output is correct |
11 |
Correct |
3 ms |
768 KB |
Output is correct |
12 |
Correct |
4 ms |
768 KB |
Output is correct |
13 |
Correct |
3 ms |
768 KB |
Output is correct |
14 |
Correct |
3 ms |
768 KB |
Output is correct |
15 |
Correct |
2 ms |
768 KB |
Output is correct |
16 |
Correct |
376 ms |
684 KB |
Output is correct |
17 |
Correct |
319 ms |
684 KB |
Output is correct |
18 |
Correct |
295 ms |
684 KB |
Output is correct |
19 |
Correct |
303 ms |
684 KB |
Output is correct |
20 |
Correct |
368 ms |
684 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
327 ms |
988 KB |
Partially correct |
2 |
Partially correct |
303 ms |
972 KB |
Partially correct |
3 |
Partially correct |
585 ms |
684 KB |
Partially correct |
4 |
Partially correct |
428 ms |
684 KB |
Partially correct |
5 |
Partially correct |
409 ms |
1120 KB |
Partially correct |
6 |
Partially correct |
289 ms |
984 KB |
Partially correct |
7 |
Partially correct |
334 ms |
940 KB |
Partially correct |
8 |
Partially correct |
1 ms |
768 KB |
Partially correct |
9 |
Partially correct |
3 ms |
768 KB |
Partially correct |
10 |
Partially correct |
1 ms |
768 KB |
Partially correct |
11 |
Partially correct |
266 ms |
912 KB |
Partially correct |
12 |
Partially correct |
297 ms |
880 KB |
Partially correct |
13 |
Partially correct |
559 ms |
684 KB |
Partially correct |
14 |
Partially correct |
458 ms |
684 KB |
Partially correct |
15 |
Partially correct |
341 ms |
688 KB |
Partially correct |
16 |
Partially correct |
302 ms |
684 KB |
Partially correct |
17 |
Partially correct |
370 ms |
684 KB |
Partially correct |
18 |
Partially correct |
287 ms |
1228 KB |
Partially correct |
19 |
Partially correct |
307 ms |
1132 KB |
Partially correct |
20 |
Partially correct |
255 ms |
684 KB |
Partially correct |
21 |
Partially correct |
41 ms |
716 KB |
Partially correct |
22 |
Partially correct |
41 ms |
956 KB |
Partially correct |
23 |
Partially correct |
60 ms |
1220 KB |
Partially correct |
24 |
Partially correct |
3 ms |
768 KB |
Partially correct |
25 |
Partially correct |
3 ms |
884 KB |
Partially correct |
26 |
Partially correct |
3 ms |
1016 KB |
Partially correct |
27 |
Partially correct |
1 ms |
764 KB |
Partially correct |
28 |
Partially correct |
2 ms |
768 KB |
Partially correct |
29 |
Partially correct |
372 ms |
944 KB |
Partially correct |
30 |
Partially correct |
333 ms |
684 KB |
Partially correct |
31 |
Partially correct |
313 ms |
684 KB |
Partially correct |
32 |
Partially correct |
319 ms |
684 KB |
Partially correct |
33 |
Partially correct |
321 ms |
684 KB |
Partially correct |
34 |
Partially correct |
181 ms |
980 KB |
Partially correct |
35 |
Partially correct |
273 ms |
1400 KB |
Partially correct |
36 |
Partially correct |
256 ms |
1248 KB |
Partially correct |
37 |
Partially correct |
301 ms |
1232 KB |
Partially correct |
38 |
Partially correct |
265 ms |
1360 KB |
Partially correct |
39 |
Partially correct |
305 ms |
1212 KB |
Partially correct |
40 |
Partially correct |
282 ms |
1116 KB |
Partially correct |
41 |
Partially correct |
296 ms |
1372 KB |
Partially correct |
42 |
Partially correct |
37 ms |
1204 KB |
Partially correct |
43 |
Partially correct |
61 ms |
976 KB |
Partially correct |
44 |
Partially correct |
86 ms |
964 KB |
Partially correct |
45 |
Partially correct |
93 ms |
968 KB |
Partially correct |
46 |
Partially correct |
177 ms |
912 KB |
Partially correct |
47 |
Partially correct |
171 ms |
952 KB |
Partially correct |
48 |
Partially correct |
40 ms |
1548 KB |
Partially correct |
49 |
Partially correct |
39 ms |
1296 KB |
Partially correct |