Submission #851690

# Submission time Handle Problem Language Result Execution time Memory
851690 2023-09-20T11:32:25 Z pomuchle Roller Coaster Railroad (IOI16_railroad) C++17
34 / 100
34 ms 9304 KB
#include "railroad.h"
#ifdef DEBUG
#include <cstdio>
#include <cassert>
int main() {
    int n;
    assert(1 == scanf("%d", &n));
    std::vector<int> s(n), t(n);
    for (int i = 0; i < n; ++i)
        assert(2 == scanf("%d%d", &s[i], &t[i]));
    long long ans = plan_roller_coaster(s, t);
    printf("%lld\n", ans);
    return 0;
}
#endif

#include <ios>
#include <vector>
#include <functional>
#include <set>
#include <cassert>
#define REP(i, n) for(int i=0; i<(n); ++i)
#define FOR(i, p, n) for(int i=(p); i<=(n); ++i)
#define V std::vector
#define sz(A) (int(A.size()))
typedef long long ll;
typedef V <int> vi;
typedef V <ll> vll;
typedef V <bool> vb;
const ll INF=1e18;
void M(ll &i, ll j){
    i=std::min(i, j);
}
ll plan_roller_coaster(vi s, vi t) {
    int n = sz(s);
    assert(n<=16);
    vb czy(n, 0);
    struct ziom{
        int o,w,i;
        ziom(){}
        ziom(int no, int nw, int ni){o=no,w=nw,i=ni;}
        ziom(int j){o=w=i=j;}
    };
    V <ziom> z(n);
    REP(i, n)
        z[i]={s[i], t[i], i};
    int fm=1<<n;
    V <vll> dp(n, vll(fm, INF));
    REP(i, n)
        dp[i][1<<i]=0;
    REP(m, fm)
        REP(i, n){
            if (!(m&(1<<i)))
                continue;
            REP(j, n){
                int nm=m|(1<<j);
                if (nm>m)
                    M(dp[j][nm], dp[i][m]+std::max(0, z[i].w-z[j].o));
            }
        }
    ll w=INF;
    REP(i, n)
        M(w, dp[i][fm-1]);
    return w;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB n = 2
2 Correct 0 ms 344 KB n = 2
3 Correct 0 ms 348 KB n = 2
4 Correct 1 ms 348 KB n = 2
5 Correct 1 ms 344 KB n = 2
6 Correct 0 ms 344 KB n = 2
7 Correct 0 ms 344 KB n = 3
8 Correct 0 ms 344 KB n = 3
9 Correct 0 ms 344 KB n = 3
10 Correct 0 ms 348 KB n = 8
11 Correct 1 ms 344 KB n = 8
12 Correct 0 ms 344 KB n = 8
13 Correct 1 ms 416 KB n = 8
14 Correct 0 ms 344 KB n = 8
15 Correct 1 ms 344 KB n = 8
16 Correct 0 ms 344 KB n = 8
17 Correct 1 ms 344 KB n = 8
18 Correct 0 ms 348 KB n = 8
19 Correct 1 ms 348 KB n = 3
20 Correct 0 ms 344 KB n = 7
21 Correct 1 ms 348 KB n = 8
22 Correct 1 ms 344 KB n = 8
23 Correct 1 ms 348 KB n = 8
24 Correct 0 ms 344 KB n = 8
25 Correct 0 ms 344 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB n = 2
2 Correct 0 ms 344 KB n = 2
3 Correct 0 ms 348 KB n = 2
4 Correct 1 ms 348 KB n = 2
5 Correct 1 ms 344 KB n = 2
6 Correct 0 ms 344 KB n = 2
7 Correct 0 ms 344 KB n = 3
8 Correct 0 ms 344 KB n = 3
9 Correct 0 ms 344 KB n = 3
10 Correct 0 ms 348 KB n = 8
11 Correct 1 ms 344 KB n = 8
12 Correct 0 ms 344 KB n = 8
13 Correct 1 ms 416 KB n = 8
14 Correct 0 ms 344 KB n = 8
15 Correct 1 ms 344 KB n = 8
16 Correct 0 ms 344 KB n = 8
17 Correct 1 ms 344 KB n = 8
18 Correct 0 ms 348 KB n = 8
19 Correct 1 ms 348 KB n = 3
20 Correct 0 ms 344 KB n = 7
21 Correct 1 ms 348 KB n = 8
22 Correct 1 ms 344 KB n = 8
23 Correct 1 ms 348 KB n = 8
24 Correct 0 ms 344 KB n = 8
25 Correct 0 ms 344 KB n = 8
26 Correct 1 ms 344 KB n = 8
27 Correct 0 ms 344 KB n = 8
28 Correct 0 ms 348 KB n = 8
29 Correct 30 ms 9052 KB n = 16
30 Correct 31 ms 9048 KB n = 16
31 Correct 30 ms 9052 KB n = 16
32 Correct 30 ms 9048 KB n = 16
33 Correct 31 ms 9048 KB n = 16
34 Correct 30 ms 9048 KB n = 16
35 Correct 31 ms 9048 KB n = 16
36 Correct 14 ms 4440 KB n = 15
37 Correct 1 ms 344 KB n = 8
38 Correct 31 ms 9304 KB n = 16
39 Correct 29 ms 9048 KB n = 16
40 Correct 0 ms 344 KB n = 9
41 Correct 32 ms 9048 KB n = 16
42 Correct 30 ms 9048 KB n = 16
43 Correct 30 ms 9048 KB n = 16
44 Correct 0 ms 344 KB n = 9
45 Correct 15 ms 4440 KB n = 15
46 Correct 31 ms 9048 KB n = 16
47 Correct 33 ms 9048 KB n = 16
48 Correct 30 ms 9048 KB n = 16
# Verdict Execution time Memory Grader output
1 Runtime error 34 ms 6744 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB n = 2
2 Correct 0 ms 344 KB n = 2
3 Correct 0 ms 348 KB n = 2
4 Correct 1 ms 348 KB n = 2
5 Correct 1 ms 344 KB n = 2
6 Correct 0 ms 344 KB n = 2
7 Correct 0 ms 344 KB n = 3
8 Correct 0 ms 344 KB n = 3
9 Correct 0 ms 344 KB n = 3
10 Correct 0 ms 348 KB n = 8
11 Correct 1 ms 344 KB n = 8
12 Correct 0 ms 344 KB n = 8
13 Correct 1 ms 416 KB n = 8
14 Correct 0 ms 344 KB n = 8
15 Correct 1 ms 344 KB n = 8
16 Correct 0 ms 344 KB n = 8
17 Correct 1 ms 344 KB n = 8
18 Correct 0 ms 348 KB n = 8
19 Correct 1 ms 348 KB n = 3
20 Correct 0 ms 344 KB n = 7
21 Correct 1 ms 348 KB n = 8
22 Correct 1 ms 344 KB n = 8
23 Correct 1 ms 348 KB n = 8
24 Correct 0 ms 344 KB n = 8
25 Correct 0 ms 344 KB n = 8
26 Correct 1 ms 344 KB n = 8
27 Correct 0 ms 344 KB n = 8
28 Correct 0 ms 348 KB n = 8
29 Correct 30 ms 9052 KB n = 16
30 Correct 31 ms 9048 KB n = 16
31 Correct 30 ms 9052 KB n = 16
32 Correct 30 ms 9048 KB n = 16
33 Correct 31 ms 9048 KB n = 16
34 Correct 30 ms 9048 KB n = 16
35 Correct 31 ms 9048 KB n = 16
36 Correct 14 ms 4440 KB n = 15
37 Correct 1 ms 344 KB n = 8
38 Correct 31 ms 9304 KB n = 16
39 Correct 29 ms 9048 KB n = 16
40 Correct 0 ms 344 KB n = 9
41 Correct 32 ms 9048 KB n = 16
42 Correct 30 ms 9048 KB n = 16
43 Correct 30 ms 9048 KB n = 16
44 Correct 0 ms 344 KB n = 9
45 Correct 15 ms 4440 KB n = 15
46 Correct 31 ms 9048 KB n = 16
47 Correct 33 ms 9048 KB n = 16
48 Correct 30 ms 9048 KB n = 16
49 Runtime error 34 ms 6744 KB Execution killed with signal 6
50 Halted 0 ms 0 KB -