Submission #94179

#TimeUsernameProblemLanguageResultExecution timeMemory
94179ekremBurza (COCI16_burza)C++98
0 / 160
3 ms760 KiB
#include <bits/stdc++.h>
#define st first
#define nd second
#define mp make_pair
#define pb push_back
#define N 405
using namespace std;
typedef pair < int , int > ii;
int n, m, k, cik, der[N], par[N], a[N][N], say[N], u[N];
vector < int > g[N];

void dfs(int node, int pr, int dr){
	par[node] = pr;
	der[node] = dr;
	for(int i = 0; i < g[node].size(); i++)
		if(g[node][i] != pr)
			dfs(g[node][i], node, dr + 1);
}

int main() {
	// freopen("in.txt", "r", stdin);
	// freopen("out.txt", "w", stdout);
	scanf("%d %d",&n ,&k);k++;
	for(int i = 1; i < n; i++){
		int u, v;
		scanf("%d %d",&u ,&v);
		g[u].pb(v);
		g[v].pb(u);
	}
	dfs(1, 0, 1);
	for(int i = 1; i <= n; i++){
		if(der[i] != k)
			continue;
		int node = i;
		m++;
		for(int j = k; j >= 1; j--){
			a[m][j] = node;
			node = par[node];
		}
	}
	// for(int i = 1; i <= m; i++,puts(""))
	// 	for(int j = 1; j <= k; j++)
	// 		printf("%d ", a[i][j]);
	for(int j = 2; j <= k; j++){
		memset(say, 0, sizeof say);
		ii mx = mp(0, 0);
		for(int i = 1; i <= m; i++){
			if(u[i])
				continue;
			say[a[i][j]]++;
		}
		for(int i = 1; i <= n; i++)
			mx = max(mx, mp(say[i], i));
		for(int i = 1; i <= m; i++)
			if(a[i][j] == mx.nd){
				cik++;
				u[i] = 1;
			}
	}
	if(cik == m)
		puts("DA");
	else
		puts("NE");
	return 0;
}

Compilation message (stderr)

burza.cpp: In function 'void dfs(int, int, int)':
burza.cpp:15:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < g[node].size(); i++)
                 ~~^~~~~~~~~~~~~~~~
burza.cpp: In function 'int main()':
burza.cpp:23:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n ,&k);k++;
  ~~~~~^~~~~~~~~~~~~~~~
burza.cpp:26:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&u ,&v);
   ~~~~~^~~~~~~~~~~~~~~~
#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...