Submission #312465

#TimeUsernameProblemLanguageResultExecution timeMemory
312465CodeKrackerPower Plant (JOI20_power)C++14
0 / 100
4 ms4992 KiB
/*input 16 7 10 5 11 9 4 14 12 2 11 14 16 4 2 1 13 11 3 7 1 15 9 2 1 11 6 14 9 8 9 0111111001001110 */ /** Author: Kristopher Paul Date Created: 30-09-2020 **/ #include<bits/stdc++.h> #include<stdio.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define ll long long #define int ll #define pb push_back #define INF 1e18 //#define MOD 1000000007 #define MOD 998244353 #define mp make_pair const double PI=3.141592653589793238462643383279502884197169399375105820974944; #define REP(i,n) for (int i = 0; i < n; i++) #define FOR(i,a,b) for (int i = a; i < b; i++) #define REPD(i,n) for (int i = n-1; i >= 0; i--) #define FORD(i,a,b) for (int i = a; i >= b; i--) #define remax(a,b) a = max(a,b) #define remin(a,b) a = min(a,b) #define umap map #define pii pair<int,int> #define F first #define S second #define mii map<int,int> #define vi vector<int> #define vvi vector<vi> #define itr :: iterator it #define all(v) v.begin(),v.end() #define WL(t) while(t--) #define gcd(a,b) __gcd((a),(b)) #define lcm(a,b) ((a)*(b))/gcd((a),(b)) #define out(x) cout << #x << " is " << x << endl #define FastIO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); using namespace std; //Uncomment for File I/O //ifstream fin("input.in") //using namespace __gnu_pbds; //typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> pbds; // set //typedef tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update> pbds; // multiset int ModExp(int x,int y,int m){ int res = 1; x = x % m; while (y > 0) { if (y & 1) res = (res*x) % m; y = y>>1; x = (x*x) % m; } return res; } vector<int> adj[200005]; int type[200005] = {}; int dfs(int cv,int p){ int cnt = 0; if(type[cv] == 1){ cnt++; return cnt; } FOR(i,0,adj[cv].size()){ if(adj[cv][i] != p){ cnt += dfs(adj[cv][i],cv); } } return cnt; } void solve(){ int n; cin >> n; FOR(i,0,n-1){ int u,v; cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } string s; cin >> s; FOR(i,1,n+1){ type[i] = s[i-1]-'0'; } int ans = 1; FOR(i,1,n+1){ int mx = 0; int tot = 0; FOR(j,0,adj[i].size()){ int v = adj[i][j]; int num = dfs(v,i); remax(mx,num); tot += num; } if(type[i] == 1){ remax(ans,max(tot-1,mx+1)); }else{ remax(ans,tot); } } cout << ans << endl; } signed main(){ FastIO; int t = 1; // cin >> t; WL(t){ solve(); } }

Compilation message (stderr)

power.cpp: In function 'long long int dfs(long long int, long long int)':
power.cpp:37:38: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 | #define FOR(i,a,b) for (int i = a; i < b; i++)
......
   89 |     FOR(i,0,adj[cv].size()){
      |         ~~~~~~~~~~~~~~~~~~            
power.cpp:89:5: note: in expansion of macro 'FOR'
   89 |     FOR(i,0,adj[cv].size()){
      |     ^~~
power.cpp: In function 'void solve()':
power.cpp:37:38: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 | #define FOR(i,a,b) for (int i = a; i < b; i++)
......
  115 |         FOR(j,0,adj[i].size()){
      |             ~~~~~~~~~~~~~~~~~         
power.cpp:115:9: note: in expansion of macro 'FOR'
  115 |         FOR(j,0,adj[i].size()){
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...