제출 #1204586

#제출 시각아이디문제언어결과실행 시간메모리
1204586loiiii12358Roller Coaster Railroad (IOI16_railroad)C++20
34 / 100
44 ms9356 KiB
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long

int dp[1<<16][16],tmp;
vector<int> mask[17];
long long plan_roller_coaster(std::vector<int32_t> s, std::vector<int32_t> t) {
    int n = (int) s.size();
    if(n>20){
        return 0;
    }
    for(int i=0;i<(1<<n);i++){
        tmp=0;
        for(int j=0;j<n;j++){
            if(i&(1<<j)){
                tmp++;
            }
            dp[i][j]=1e18;
        }
        mask[tmp].push_back(i);
    }
    for(int i=0;i<n;i++){
        dp[1<<i][i]=0;
    }
    for(int i=2;i<=n;i++){
        for(int j=0;j<mask[i].size();j++){
            for(int k=0;k<n;k++){
                if(mask[i][j]&(1<<k)){
                    for(int l=0;l<n;l++){
                        if((mask[i][j]^(1<<k))&(1<<l)){
                            dp[mask[i][j]][k]=min(dp[mask[i][j]][k],dp[mask[i][j]^(1<<k)][l]+max(0,t[l]-s[k]));
                        }
                    }
                }
            }
        }
    }
    tmp=1e18;
    for(int i=0;i<n;i++){
        tmp=min(tmp,dp[(1<<n)-1][i]);
    }
    return tmp;
}

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