Submission #423293

#TimeUsernameProblemLanguageResultExecution timeMemory
423293DanerZeinPower Plant (JOI20_power)C++14
6 / 100
1580 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
vector<vi> G;
string x;
set<int> br;
bool dfs(int u,int p,int b){
  for(auto &v:G[u]){
    if(v==b) return 1;
    if(v!=p){
      if(dfs(v,u,b)){
	if(x[v]=='1') br.insert(v);
	return 1;
      }
    }
  }
  return 0;
}
int main(){
  int n;
  cin>>n;
  G.resize(n+1);
  for(int i=0;i<n-1;i++){
    int a,b; cin>>a>>b;
    a--; b--;
    G[a].push_back(b);
    G[b].push_back(a);
  }
  cin>>x;
  int rp=-1;
  for(int i=0;i<(1<<n);i++){
    //cout<<i<<endl;
    vector<int> po;
    int c=0;
    for(int j=0;j<n;j++){
      if(i&(1<<j) && x[j]=='1'){
	c++;
	po.push_back(j);
      }
    }
    br.clear();
    for(int j=0;j<po.size();j++){
      for(int k=j+1;k<po.size();k++){
	dfs(po[j],-1,po[k]);
      }
    }
    for(int j=0;j<po.size();j++){
      if(br.find(po[j])!=br.end()) c--;
    }
    rp=max(rp,c-(int)br.size());
  }
  cout<<rp<<endl;
}

Compilation message (stderr)

power.cpp: In function 'int main()':
power.cpp:43:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int j=0;j<po.size();j++){
      |                 ~^~~~~~~~~~
power.cpp:44:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |       for(int k=j+1;k<po.size();k++){
      |                     ~^~~~~~~~~~
power.cpp:48:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int j=0;j<po.size();j++){
      |                 ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...