Submission #525193


Source Code Expand

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<climits>
#include<algorithm>
#include<vector>
#include<valarray>
#include<string>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
  
  
#define rep(i,n) for(int i=0;i<n;i++)
#define REP(i,n) for(int i=1;i<=n;i++)
#define drep(i,n) for(int i=n-1;i>=0;i--)
#define DREP(i,n) for(int i=n;i>0;i--)
#define Rep(i,m,n) for(int i=m;i<n;i++)
#define scani(a) scanf("%d",&a)
#define scand(a) scanf("%lf",&a)
#define scans(s) scanf("%s",s)
#define readi(a) int a;scanf("%d",&a)
#define printi(a) printf("%d",a)
#define prints(s) printf("%s",s)
#define even(n) (((n)+1)%2)
#define odd(n) ((n)%2)
#define sg(x) ((x)?1:0)
#define LF printf("\n")
#define SPACE printf(" ")
#define pb push_back
#define mp make_pair
#define bs binary_search
#define all(a) (a).begin(),(a).end()
#define forall(itr,a) for(auto itr=a.begin();itr!=a.end();++itr)
#define MOD 1000000007
  
typedef long long LL;
typedef vector<int> vi;
typedef vector<vector<int> > vvi;
typedef pair<double,double> pdd;
typedef pair<int,int> pii;
  
const double pi=acos(-1.0);
double rad(double t){return t*pi/180.0;}
double deg(double d){return d*180.0/pi;}
int GCD(int x,int y){if(x<y)swap(x,y);return x%y?GCD(y,x%y):y;}
int LCM(int x,int y){return x/GCD(x,y)*y;}

vector<pair<int,int> > edge[100009];
map<int,int> num;
int cost1[100009];
bool flag[100009];

void dfs(int a){
  flag[a]=true;
  rep(i,edge[a].size()){
    int next = edge[a][i].first;
    if(flag[next])continue;
    cost1[next]=cost1[a]^edge[a][i].second;
    dfs(next);
  }
}

int main(){
  readi(N);readi(X); 
  REP(loop,N-1){
    readi(x);readi(y);readi(c);
    edge[x].pb(mp(y,c));
    edge[y].pb(mp(x,c));
  }

  dfs(1);
  REP(i,N){
    if(num.find(cost1[i])!=num.end())num[cost1[i]]++;
    else num[cost1[i]]=1;
  }

  LL ans=0;
  
  if(X==0){
    forall(itr,num){
      LL n = itr->second;
      ans += n*(n-1)/2;
    }
  }else{
    forall(itr,num){
      int x = itr->first;
      if(num.find(x^X)!=num.end())
	ans += ((LL)num[x])*num[x^X];
    }
    ans/=2;
  }

  printf("%ld\n",ans);

  return 0;
}

Submission Info

Submission Time
Task C - エックスオア多橋君
User buko1062000
Language C++11 (GCC 4.9.2)
Score 100
Code Size 2236 Byte
Status AC
Exec Time 228 ms
Memory 11944 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:97:21: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘LL {aka long long int}’ [-Wformat=]
   printf("%ld\n",ans);
                     ^
./Main.cpp:68:11: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   readi(N);readi(X); 
           ^
./Main.cpp:68:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   readi(N);readi(X); 
                    ^
./Main.cpp:70:13: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     readi(x);readi(y);readi(c);
             ^
./Main.cpp:70:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     readi(x);readi(y);readi(c);
                      ^
./...

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 27
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 28 ms 3104 KiB
subtask0_sample_02.txt AC 29 ms 3104 KiB
subtask0_sample_03.txt AC 27 ms 3108 KiB
subtask1_01.txt AC 30 ms 3228 KiB
subtask1_02.txt AC 28 ms 3104 KiB
subtask1_03.txt AC 214 ms 11936 KiB
subtask1_04.txt AC 228 ms 11944 KiB
subtask1_05.txt AC 215 ms 11936 KiB
subtask1_06.txt AC 105 ms 9764 KiB
subtask1_07.txt AC 121 ms 7204 KiB
subtask1_08.txt AC 130 ms 7200 KiB
subtask1_09.txt AC 165 ms 7964 KiB
subtask1_10.txt AC 165 ms 7972 KiB
subtask1_11.txt AC 31 ms 3108 KiB
subtask1_12.txt AC 31 ms 3100 KiB
subtask1_13.txt AC 138 ms 7208 KiB
subtask1_14.txt AC 141 ms 7212 KiB
subtask1_15.txt AC 44 ms 3884 KiB
subtask1_16.txt AC 44 ms 3880 KiB
subtask1_17.txt AC 44 ms 3876 KiB
subtask1_18.txt AC 45 ms 3852 KiB
subtask1_19.txt AC 45 ms 3872 KiB
subtask1_20.txt AC 45 ms 3872 KiB
subtask1_21.txt AC 42 ms 3876 KiB
subtask1_22.txt AC 45 ms 3872 KiB
subtask1_23.txt AC 47 ms 3808 KiB
subtask1_24.txt AC 44 ms 3800 KiB