제출 #903963

#제출 시각아이디문제언어결과실행 시간메모리
903963MinaRagy06Burza (COCI16_burza)C++17
0 / 160
3 ms1368 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

const int N = 405;
vector<int> adj[N];
int dp[N][N];
int dfs(int i, int rem, int par) {
	if (~dp[i][rem]) {
		return dp[i][rem];
	}
	dp[i][rem] = 1e9;
	for (int k = 0; k <= rem; k++) {
		vector<int> v;
		for (auto nxt : adj[i]) {
			if (nxt == par) continue;
			v.push_back(dfs(nxt, rem - k + 1, i) + 1);
		}
		sort(v.rbegin(), v.rend());
		if (k < v.size()) {
			dp[i][rem] = min(dp[i][rem], v[k]);
		} else {
			dp[i][rem] = 0;
		}
	}
	return dp[i][rem];
}
int main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	memset(dp, -1, sizeof dp);
	int n, k;
	cin >> n >> k;
	for (int i = 1, u, v; i < n; i++) {
		cin >> u >> v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	int ans = dfs(1, 1, 0);
	cout << (ans < k? "DA\n" : "NE\n");
	return 0;
}

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

burza.cpp: In function 'int dfs(int, int, int)':
burza.cpp:20:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |   if (k < v.size()) {
      |       ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...