Submission #1192302

#TimeUsernameProblemLanguageResultExecution timeMemory
1192302Mousa_AboubakerRoller Coaster Railroad (IOI16_railroad)C++20
11 / 100
2094 ms589824 KiB
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;

long long plan_roller_coaster(vector<int> s, vector<int> t)
{
    int n = s.size();
    vector adj(n, vector<pair<int, long long>>());
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            if(i == j)
                continue;
            adj[i].push_back({j, max(0, t[i] - s[j])});
        }
    }
    int cnt = 0;
    vector<bool> vis(n, false);
    long long mn = 1e18 + 10;
    auto dfs = [&](auto self, int u, long long sum) -> void
    {
        if(vis[u])
        {
            return;
        }
        cnt++;
        if(cnt == n)
        {
            if(mn > sum)
                mn = sum;
            cnt--;
            return;
        }
        vis[u] = true;
        for(auto [v, w]: adj[u])
        {
            if(not vis[v])
                self(self, v, sum + w);
        }
        vis[u] = false;
        cnt--;
    };
    for(int i = 0; i < n; i++)
    {
        dfs(dfs, i, 0ll);
    }
    return mn;
}

Compilation message (stderr)

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...