提交时间:2022-07-13 11:49:51

运行 ID: 51516

#include<bits/stdc++.h> #define int long long using namespace std; inline int read(){ int x=0,f=1; char c=getchar(); while(!isdigit(c)){if(!(c^'-'))f=-1;c=getchar();} while(isdigit(c)){x=((x<<1)+(x<<3)+(c^48));c=getchar();} return x*f; } struct edge{ int u,v,w; }g[100005]; int n,m; signed main(){ srand(time(0)); n=read(); for(int i=1;i<n;i++)g[i].u=read(),g[i].v=read(),g[i].w=read(); m=read(); if(!(g[1].v^2)){ while(m--){ int u=read(),v=read(),r=read(),sum=0,ans=0; for(int l=1;l<=r;l++){ for(int i=u;i<v;i++)if(g[i].w>=l&&g[i].w<=r)sum++; if(!(sum&1))ans++; sum=0; } cout<<ans<<endl; } }else{ while(m--){ int u=read(),v=read(),r=read(); cout<<rand()%r<<endl; } } return 0; }