Submission #364914

#TimeUsernameProblemLanguageResultExecution timeMemory
364914mario05092929Stations (IOI20_stations)C++14
100 / 100
1085 ms1448 KiB
#include "stations.h"
#include <bits/stdc++.h>
#define x first
#define y second
#define pb push_back
#define all(v) v.begin(),v.end()
#pragma gcc optimize("O3")
#pragma gcc optimize("Ofast")
#pragma gcc optimize("unroll-loops")
using namespace std;
const int INF = 1e9;
const int TMX = 1 << 18;
const long long llINF = 2e18;
const long long mod = 1e9+7;
const long long hashmod = 100003;
const int MAXN = 100000;
const int MAXM = 1000000;
typedef long long ll;
typedef long double ld;
typedef pair <int,int> pi;
typedef pair <ll,ll> pl;
typedef vector <int> vec;
typedef vector <pi> vecpi;
typedef long long ll;
int co,n,k;
vec v[1005];
vec la;

void dfs(int x,int pr,int dep) {
    if(dep % 2) la[x] = ++co;
    for(int i : v[x]) if(i^pr) dfs(i,x,dep+1);
    if(dep % 2 == 0) la[x] = ++co;
}

std::vector<int> label(int N, int K, std::vector<int> u, std::vector<int> u2) {
    n = N, k = K;
    for(int i = 0;i < n;i++) v[i].clear();
    for(int i = 0;i < n-1;i++) v[u[i]].pb(u2[i]), v[u2[i]].pb(u[i]);
    la.resize(n,0);
    co = 0; dfs(1,-1,1);
    return la;
}

int find_next_station(int s, int t, std::vector<int> c) {
    sort(all(c));
    int isin = (s < c[0]), isroot = (s == 1);
    int par = -1,m = c.size();
    if(isin) {
        par = c.back();
        m--;
        int l = s+1;
        for(int i = 0;i < m;i++) {
            if(l <= t&&t <= c[i]) return c[i];
            l = c[i]+1;
        }
        return par;
    }
    else {
        par = c[0];
        for(int i = 0;i < m-1;i++) c[i] = c[i+1];
        m--;
        c[m] = s;
        for(int i = 0;i < m;i++) {
            if(c[i] <= t&&t < c[i+1]) return c[i];
        }
        return par;
    }

}

Compilation message (stderr)

stations.cpp:7: warning: ignoring #pragma gcc optimize [-Wunknown-pragmas]
    7 | #pragma gcc optimize("O3")
      | 
stations.cpp:8: warning: ignoring #pragma gcc optimize [-Wunknown-pragmas]
    8 | #pragma gcc optimize("Ofast")
      | 
stations.cpp:9: warning: ignoring #pragma gcc optimize [-Wunknown-pragmas]
    9 | #pragma gcc optimize("unroll-loops")
      | 
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:46:28: warning: unused variable 'isroot' [-Wunused-variable]
   46 |     int isin = (s < c[0]), isroot = (s == 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...