제출 #1186755

#제출 시각아이디문제언어결과실행 시간메모리
1186755AgageldiRoller Coaster Railroad (IOI16_railroad)C++20
11 / 100
2095 ms15764 KiB
#include "bits/stdc++.h"
// #include "grader.cpp"
#include "railroad.h"
using namespace std;

#define ll long long
#define N 200005
#define ff first
#define ss second

ll a[N], answer = LLONG_MAX, n;
vector <int> s1, t1;
set <int> p;
map <set<int>, ll> vis;

ll solve(int x,ll op) {
    if(!(int)p.size()){
        answer = min(answer,op);
        return 0;
    }
    // cout << op << " " << x << '\n';
    // if(vis.find(p) != vis.end()) {
    //     answer = min(vis[p] + op, answer);
    //     return vis[p];
    // }
    ll calc = LLONG_MAX, val = op;
    for(int i = 0; i < n; i++) {
        if(p.find(i) == p.end()) continue;
        p.erase(i);
        calc = min(solve(i,val + max(0,t1[x] - s1[i])),calc);
        p.insert(i);
    }
    // vis[p] = calc;
    // answer = min(answer,calc + val);
    // cout << calc << " " << val<< '\n';
    return calc;
}

ll plan_roller_coaster(vector<int> s, vector<int> t) {
    n = (int)s.size();
    s1 = s, t1 = t;
    for(int i = 0; i < n; i++) {
        p.insert(i);
    }
    for(int i = 0; i < n; i++) {
        p.erase(i);
        solve(i, 0);
        p.insert(i);
    }
    return answer;
}

컴파일 시 표준 에러 (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...