From b536c70892dc481ca44afd2eda760d983646ea7f Mon Sep 17 00:00:00 2001 From: PratikPathak21 <32901042+PratikPathak21@users.noreply.github.com> Date: Sun, 20 Oct 2019 08:46:07 +0530 Subject: [PATCH] Create 1139C.cpp --- 1139C.cpp | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 1139C.cpp diff --git a/1139C.cpp b/1139C.cpp new file mode 100644 index 0000000..50885e0 --- /dev/null +++ b/1139C.cpp @@ -0,0 +1,104 @@ +#include + +using namespace std; + +#define fast_cin() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); +#define MAX 1000000 +#define ll long long +#define db double +#define pb push_back +#define For(i,s,e) for (ll i=(s); i<(e); i++) +#define Debug_array(a,n) for (ll i=(0); i<(n); i++) cout<=(e); i--) +#define all(v) v.begin(),v.end() +#define vll vector +#define vs vector + +#define mapll map +#define mapss map +#define mapsl map +#define mapls map + +#define pll pair +#define pss pair +#define psl pair +#define pls pair + +#define minheap priority_queue +#define maxheap priority_queue ,greater> + +#define ff first +#define ss second +#define endl "\n" +#define mp make_pair +#define big_prime 15486277 +#define bigger_prime 179424697 +#define biggest_prime 32416188691 +const ll mod=1e9 + 7; + + +ll takemod(ll a) { + return ((a%mod)+mod)%mod; +} + +ll gcd(ll a, ll b) { + if (b == 0) + return a; + return gcd(b, a % b); +} + +ll fast_exp(ll base, ll expo) { + ll res=1; + while(expo>0) { + if(expo&1) res=(res*base)%mod; + base=(base*base)%mod; + expo>>=1;} + return res; +} + +ll modinv(ll a) { + return takemod(fast_exp(takemod(a), mod-2)); +} +vector graph[100005]; +ll visited[100005]; +ll n,k,ans=0,finalans; +void dfs(ll index) +{ + visited[index]=1; + ans++; + for(pll a: graph[index]) + { + if(visited[a.ff]==-1 and a.ss==0) + { + dfs(a.ff); + } + } +} +//unordered_map umap1[100005]; +signed main() +{ + fast_cin(); + memset(visited,-1,sizeof(visited)); + cin>>n>>k; + finalans=fast_exp(n,k); + For(i,0,n-1) + { + ll a,b,c; + cin>>a>>b>>c; + graph[a].pb(mp(b,c)); + graph[b].pb(mp(a,c)); + } + For(i,1,n+1) + { + if(visited[i]==-1) + { + dfs(i); + //cout<