제출 #1229415

#제출 시각아이디문제언어결과실행 시간메모리
1229415raspyNewspapers (CEOI21_newspapers)C++20
0 / 100
1 ms320 KiB
#include <bits/stdc++.h>

#define vi vector<int>
#define int long long
#define pb push_back
#define all(x) (x).begin(), (x).end()

using namespace std;

const int N = 1e3+5;

vi graf[N];
int gl[N];

void dfs(int u, int& naj, int p=-1, int tg=0)
{
	gl[u]=tg;
	if (gl[u]>gl[naj])
		naj=u;
	for (int v:graf[u])
		if (v!=p)
			dfs(v, naj, u, tg+1);
}
bool mz=1;
int preveri(int u, int p=-1)
{
	int sm = 0;
	vi o;
	for (int v:graf[u])
		if (v==p)
			o.pb(preveri(v, u));
	sort(all(o));
	if (o.size()>1 && o[0]>2)
		mz=0;
	sm=o.back();
	return sm+1;
}

signed main()
{
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < m; i++)
	{
		int u, v;
		cin >> u >> v;
		graf[u].pb(v);graf[v].pb(u);
	}
	if (m!=n-1)
	{
		cout << "NO\n";
		return 0;
	}
	int u = 0;
	dfs(0, u);
	dfs(u, u);
	int t = preveri(u);
	if (mz)
		cout << "YES\n1\n1\n";
	else
		cout << "NO\n";
	return 0;
}










#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...