Submission #1281270

#TimeUsernameProblemLanguageResultExecution timeMemory
1281270SmuggingSpunUnique Cities (JOI19_ho_t5)C++20
4 / 100
86 ms1088 KiB
#include<bits/stdc++.h>
#define taskname "E"
using namespace std;
template<class T>void maximize(T& a, T b){
	if(a < b){
		a = b;
	}
}
int n, m;
namespace sub1{
	void solve(){
		vector<vector<int>>g(n + 1);
		for(int _ = 1; _ < n; _++){
			int u, v;
			cin >> u >> v;
			g[u].push_back(v);
			g[v].push_back(u);
		}
		vector<int>c(n + 1);
		for(int i = 1; i <= n; i++){
			cin >> c[i];
		}
		vector<bool>vis(m + 1, false);
		for(int i = 1; i <= n; i++){
			vector<int>f(n + 1, -1), cnt(n + 1, 0);
			queue<int>q;
			q.push(i);
			int ans = f[i] = 0;
			while(!q.empty()){
				int u = q.front();
				q.pop();
				cnt[f[u]]++;
				for(int& v : g[u]){
					if(f[v] == -1){
						f[v] = f[u] + 1;
						q.push(v);
					}
				}
			}
			for(int j = 1; j <= n; j++){
				if(j != i && f[j] != -1 && cnt[f[j]] == 1 && !vis[c[j]]){
					ans++;
					vis[c[j]] = true;
				}
			}
			cout << ans << "\n";
			for(int j = 1; j <= n; j++){
				vis[c[j]] = false;
			}
		}
	}
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	cin >> n >> m;
	if(n <= 2000){
		sub1::solve();
	}
}

Compilation message (stderr)

joi2019_ho_t5.cpp: In function 'int main()':
joi2019_ho_t5.cpp:56:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |                 freopen(taskname".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...