제출 #289319

#제출 시각아이디문제언어결과실행 시간메모리
289319amoo_safarRoller Coaster Railroad (IOI16_railroad)C++17
34 / 100
77 ms8704 KiB
#include "railroad.h"

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 16;
ll dp[1 << N][N];

ll plan_roller_coaster(vector<int> s, vector<int> t){
	int n = (int) s.size();
	assert(n <= N);
	memset(dp, 31, sizeof dp);
	int n2 = 1 << n;
	for(int i = 0; i < n; i++) dp[1 << i][i] = 0;
	
	for(int i = 1; i < n2; i++){
		for(int la = 0; la < n; la ++){
			if(i >> la & 1 == 0) continue;
			for(int nx = 0; nx < n; nx ++){
				if(i >> nx & 1) continue;
				dp[i | (1 << nx)][nx] = min(dp[i | (1 << nx)][nx], dp[i][la] + max(0, t[la] - s[nx]));
			}
		}
	}
	return *min_element(dp[n2 - 1], dp[n2 - 1] + n);
}

컴파일 시 표준 에러 (stderr) 메시지

railroad.cpp: In function 'll plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:21:19: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   21 |    if(i >> la & 1 == 0) continue;
      |                 ~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...