Submission #286808


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define all(c) (c).begin(),(c).end()
#define rrep(i,n) for(int i=(int)(n)-1;i>=0;i--)
#define REP(i,m,n) for(int i=(int)(m);i<(int)(n);i++)
#define rep(i,n) REP(i,0,n)
#define iter(c) __typeof((c).begin())
#define tr(it,c) for(iter(c) it=(c).begin();it!=(c).end();it++)
#define pb(a) push_back(a)
#define pr(a) cout<<(a)<<endl
#define PR(a,b) cout<<(a)<<" "<<(b)<<endl
#define F first
#define S second
#define ll long long
bool check(int n,int m,int x,int y){return (x<0||x>=n||y<0||y>=m)?false:true;}
const ll MAX=1000000007,MAXL=1LL<<60,dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};
typedef pair<int,int> P;

int main() {
  int n,s;
  cin >> n >> s;
  int a[n+1];
  rep(i,n) cin >> a[i];
  vector<int> v[n+1];
  rep(i,n-1) {
    int x,y;
    cin >> x >> y;
    v[x].pb(y);
    v[y].pb(x);
  }

  int p[n+1];
  fill(p,p+n+1,-1);
  queue<int> que;
  que.push(s);
  while(!que.empty()) {
    int x=que.front();que.pop();
    rep(i,v[x].size()) {
      int y=v[x][i];
      if(p[x]==y) continue;
      if(p[y]!=-1) continue;
      p[y]=x;
      que.push(y);
    }
  }
  bool ck[n+1];
  fill(ck,ck+n+1,false);
  int ans=0;
  rep(i,n) {
    if(!a[i]) continue;
    int x=i+1;
    while(p[x]!=-1) {
      if(ck[x]) break;
      ans++;
      ck[x]=true;
      x=p[x];
    }
  }
  pr(ans*2);
  return 0;
}

Submission Info

Submission Time
Task B - ツリーグラフ
User s1200008
Language C++ (G++ 4.6.4)
Score 100
Code Size 1395 Byte
Status AC
Exec Time 23 ms
Memory 928 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 21 ms 788 KB
subtask0_sample_02.txt AC 22 ms 696 KB
subtask1_line01.txt AC 21 ms 804 KB
subtask1_line02.txt AC 22 ms 788 KB
subtask1_line03.txt AC 22 ms 916 KB
subtask1_line04.txt AC 22 ms 800 KB
subtask1_line05.txt AC 23 ms 924 KB
subtask1_line06.txt AC 23 ms 928 KB
subtask1_random01.txt AC 23 ms 924 KB
subtask1_random02.txt AC 22 ms 804 KB
subtask1_random03.txt AC 21 ms 920 KB
subtask1_random04.txt AC 22 ms 928 KB
subtask1_random05.txt AC 22 ms 744 KB
subtask1_random06.txt AC 22 ms 812 KB
subtask1_random07.txt AC 22 ms 804 KB
subtask1_random08.txt AC 22 ms 808 KB
subtask1_special01.txt AC 22 ms 752 KB
subtask1_special02.txt AC 22 ms 800 KB
subtask1_special03.txt AC 22 ms 924 KB
subtask1_special04.txt AC 21 ms 800 KB