#include <bits/stdc++.h>
using namespace std;
bool M1;
//#define int long long
#define ll long long
#define pb push_back
#define ii pair<int,int>
#define len(s) (int)s.size()
#define all(s) (s).begin(),(s).end()
#define OpenFile
(Name) if (fopen
(Name".inp",
"r")) freopen
(Name".inp",
"r",stdin
),freopen
(Name".out",
"w",stdout
);#define MASK(x) ((1LL)<<(x))
#define Bit(x,i) (((x)>>(i))&1)
#define Countbit(x) __builtin_popcountll(x)
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
const int N=2e5+5,M=1e3+5,INF=1e9,lim=2e5;
ll Mod=1e9+7,LNF=1e18;
int n,k,timer=0;
int tin[N],tout[N],sz[N],heavy[N],node[N];
ll f[N],dp[N],h[N];
vector<ii> g[N];
vector<ll> val;
int get_id(ll x) {
int pos=lower_bound(all(val),x)-val.begin();
if (pos<len(val) && val[pos]==x) return pos+1;
return -1;
}
void DFS(int u=1,int p=0) {
tin[u]=++timer;
node[timer]=u;
sz[u]=1;
val.pb(f[u]);
for (ii i:g[u])
if (i.first!=p) {
int v=i.first,w=i.second;
h[v]=h[u]+1;
f[v]=f[u]+w;
DFS(v,u);
sz[u]+=sz[v];
if (sz[v]>sz[heavy[u]]) heavy[u]=v;
}
tout[u]=timer;
}
ll res=LNF;
/// h[u]+h[v]-2*h[lca(u,v)]=k
/// h[v]=k-h[u]+2*h[lca(u,v)]
void get(int u,int lca_uv) {
ll w=k-f[u]+2*f[lca_uv];
int id=get_id(w);
if (id!=-1 && dp[id]!=LNF) Minimize(res,h[u]+dp[id]-2*h[lca_uv]);
}
void Push(int u) {
int id=get_id(f[u]);
Minimize(dp[id],h[u]);
}
void Pop(int u) {
int id=get_id(f[u]);
dp[id]=LNF;
}
void sack(int u=1,int p=-1,bool keep=false) {
for (ii i:g[u]) {
int v=i.first;
if (v!=p && v!=heavy[u]) sack(v,u,0);
}
if (heavy[u]) sack(heavy[u],u,1);
for (ii i:g[u]) {
int v=i.first;
if (v!=p && v!=heavy[u]) {
for (int j=tin[v];j<=tout[v];++j) get(node[j],u);
for (int j=tin[v];j<=tout[v];++j) Push(node[j]);
}
}
get(u,u);
Push(u);
if (keep==false)
for (int i=tin[u];i<=tout[u];++i) Pop(node[i]);
}
bool M2;
signed main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
OpenFile("TASK");
cin>>n>>k;
for (int i=1;i<n;++i) {
int u,v,w; cin>>u>>v>>w;
u++;
v++;
g[u].pb({v,w});
g[v].pb({u,w});
}
DFS();
sort(all(val));
val.erase(unique(all(val)),val.end());
for (int i=1;i<=lim;++i) dp[i]=LNF;
sack();
if (res==LNF) cout<<-1; else cout<<res;
cerr<<"Time: "<<(1.0*clock()/CLOCKS_PER_SEC)<<" s\n";
cerr<<"Memory: "<<abs(&M2-&M1)/1024.0/1024<<" MB\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIE0xOwovLyNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBsZW4ocykgKGludClzLnNpemUoKQojZGVmaW5lIGFsbChzKSAocykuYmVnaW4oKSwocykuZW5kKCkKI2RlZmluZSBPcGVuRmlsZShOYW1lKSBpZiAoZm9wZW4oTmFtZSIuaW5wIiwiciIpKSBmcmVvcGVuKE5hbWUiLmlucCIsInIiLHN0ZGluKSxmcmVvcGVuKE5hbWUiLm91dCIsInciLHN0ZG91dCk7CiNkZWZpbmUgTUFTSyh4KSAoKDFMTCk8PCh4KSkKI2RlZmluZSBCaXQoeCxpKSAoKCh4KT4+KGkpKSYxKQojZGVmaW5lIENvdW50Yml0KHgpIF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpCgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gYm9vbCBNaW5pbWl6ZShUICZhLFQgYikgeyBpZiAoYT5iKSB7IGE9YjsgcmV0dXJuIHRydWU7IH0gcmV0dXJuIGZhbHNlO30KdGVtcGxhdGUgPGNsYXNzIFQ+IGJvb2wgTWF4aW1pemUoVCAmYSxUIGIpIHsgaWYgKGE8YikgeyBhPWI7IHJldHVybiB0cnVlOyB9IHJldHVybiBmYWxzZTt9Cgpjb25zdCBpbnQgTj0yZTUrNSxNPTFlMys1LElORj0xZTksbGltPTJlNTsKbGwgTW9kPTFlOSs3LExORj0xZTE4OwoKaW50IG4sayx0aW1lcj0wOwppbnQgdGluW05dLHRvdXRbTl0sc3pbTl0saGVhdnlbTl0sbm9kZVtOXTsKbGwgZltOXSxkcFtOXSxoW05dOwp2ZWN0b3I8aWk+IGdbTl07CnZlY3RvcjxsbD4gdmFsOwoKaW50IGdldF9pZChsbCB4KSB7CiAgICBpbnQgcG9zPWxvd2VyX2JvdW5kKGFsbCh2YWwpLHgpLXZhbC5iZWdpbigpOwogICAgaWYgKHBvczxsZW4odmFsKSAmJiB2YWxbcG9zXT09eCkgcmV0dXJuIHBvcysxOwogICAgcmV0dXJuIC0xOwp9Cgp2b2lkIERGUyhpbnQgdT0xLGludCBwPTApIHsKICAgIHRpblt1XT0rK3RpbWVyOwogICAgbm9kZVt0aW1lcl09dTsKICAgIHN6W3VdPTE7CiAgICB2YWwucGIoZlt1XSk7CgogICAgZm9yIChpaSBpOmdbdV0pCiAgICBpZiAoaS5maXJzdCE9cCkgewogICAgICAgIGludCB2PWkuZmlyc3Qsdz1pLnNlY29uZDsKICAgICAgICBoW3ZdPWhbdV0rMTsKICAgICAgICBmW3ZdPWZbdV0rdzsKICAgICAgICBERlModix1KTsKICAgICAgICBzelt1XSs9c3pbdl07CiAgICAgICAgaWYgKHN6W3ZdPnN6W2hlYXZ5W3VdXSkgaGVhdnlbdV09djsKICAgIH0KCiAgICB0b3V0W3VdPXRpbWVyOwp9CgpsbCByZXM9TE5GOwoKLy8vIGhbdV0raFt2XS0yKmhbbGNhKHUsdildPWsKLy8vIGhbdl09ay1oW3VdKzIqaFtsY2EodSx2KV0KCnZvaWQgZ2V0KGludCB1LGludCBsY2FfdXYpIHsKICAgIGxsIHc9ay1mW3VdKzIqZltsY2FfdXZdOwogICAgaW50IGlkPWdldF9pZCh3KTsKCiAgICBpZiAoaWQhPS0xICYmIGRwW2lkXSE9TE5GKSBNaW5pbWl6ZShyZXMsaFt1XStkcFtpZF0tMipoW2xjYV91dl0pOwp9Cgp2b2lkIFB1c2goaW50IHUpIHsKICAgIGludCBpZD1nZXRfaWQoZlt1XSk7CiAgICBNaW5pbWl6ZShkcFtpZF0saFt1XSk7Cn0KCnZvaWQgUG9wKGludCB1KSB7CiAgICBpbnQgaWQ9Z2V0X2lkKGZbdV0pOwogICAgZHBbaWRdPUxORjsKfQoKdm9pZCBzYWNrKGludCB1PTEsaW50IHA9LTEsYm9vbCBrZWVwPWZhbHNlKSB7CiAgICBmb3IgKGlpIGk6Z1t1XSkgewogICAgICAgIGludCB2PWkuZmlyc3Q7CiAgICAgICAgaWYgKHYhPXAgJiYgdiE9aGVhdnlbdV0pIHNhY2sodix1LDApOwogICAgfQogICAgaWYgKGhlYXZ5W3VdKSBzYWNrKGhlYXZ5W3VdLHUsMSk7CgogICAgZm9yIChpaSBpOmdbdV0pIHsKICAgICAgICBpbnQgdj1pLmZpcnN0OwogICAgICAgIGlmICh2IT1wICYmIHYhPWhlYXZ5W3VdKSB7CiAgICAgICAgICAgIGZvciAoaW50IGo9dGluW3ZdO2o8PXRvdXRbdl07KytqKSBnZXQobm9kZVtqXSx1KTsKICAgICAgICAgICAgZm9yIChpbnQgaj10aW5bdl07ajw9dG91dFt2XTsrK2opIFB1c2gobm9kZVtqXSk7CiAgICAgICAgfQogICAgfQoKICAgIGdldCh1LHUpOwogICAgUHVzaCh1KTsKCiAgICBpZiAoa2VlcD09ZmFsc2UpCiAgICBmb3IgKGludCBpPXRpblt1XTtpPD10b3V0W3VdOysraSkgUG9wKG5vZGVbaV0pOwp9CgoKYm9vbCBNMjsKc2lnbmVkIG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBPcGVuRmlsZSgiVEFTSyIpOwoKICAgIGNpbj4+bj4+azsKICAgIGZvciAoaW50IGk9MTtpPG47KytpKSB7CiAgICAgICAgaW50IHUsdix3OyBjaW4+PnU+PnY+Pnc7CiAgICAgICAgdSsrOwogICAgICAgIHYrKzsKCiAgICAgICAgZ1t1XS5wYih7dix3fSk7CiAgICAgICAgZ1t2XS5wYih7dSx3fSk7CiAgICB9CgogICAgREZTKCk7CiAgICBzb3J0KGFsbCh2YWwpKTsKICAgIHZhbC5lcmFzZSh1bmlxdWUoYWxsKHZhbCkpLHZhbC5lbmQoKSk7CgogICAgZm9yIChpbnQgaT0xO2k8PWxpbTsrK2kpIGRwW2ldPUxORjsKCiAgICBzYWNrKCk7CgogICAgaWYgKHJlcz09TE5GKSBjb3V0PDwtMTsgZWxzZSBjb3V0PDxyZXM7CgoKCiAgICBjZXJyPDwiVGltZTogIjw8KDEuMCpjbG9jaygpL0NMT0NLU19QRVJfU0VDKTw8IiBzXG4iOwogICAgY2Vycjw8Ik1lbW9yeTogIjw8YWJzKCZNMi0mTTEpLzEwMjQuMC8xMDI0PDwiIE1CXG4iOwogICAgcmV0dXJuIDA7Cn0K
Main.java:1: error: illegal character: '#'
#include <bits/stdc++.h>
^
Main.java:1: error: class, interface, or enum expected
#include <bits/stdc++.h>
^
Main.java:4: error: class, interface, or enum expected
bool M1;
^
Main.java:6: error: illegal character: '#'
#define ll long long
^
Main.java:6: error: class, interface, or enum expected
#define ll long long
^
Main.java:7: error: illegal character: '#'
#define pb push_back
^
Main.java:8: error: illegal character: '#'
#define ii pair<int,int>
^
Main.java:9: error: illegal character: '#'
#define len(s) (int)s.size()
^
Main.java:10: error: illegal character: '#'
#define all(s) (s).begin(),(s).end()
^
Main.java:11: error: illegal character: '#'
#define OpenFile(Name) if (fopen(Name".inp","r")) freopen(Name".inp","r",stdin),freopen(Name".out","w",stdout);
^
Main.java:12: error: illegal character: '#'
#define MASK(x) ((1LL)<<(x))
^
Main.java:12: error: class, interface, or enum expected
#define MASK(x) ((1LL)<<(x))
^
Main.java:13: error: illegal character: '#'
#define Bit(x,i) (((x)>>(i))&1)
^
Main.java:14: error: illegal character: '#'
#define Countbit(x) __builtin_popcountll(x)
^
Main.java:16: error: '{' expected
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
^
Main.java:16: error: illegal start of type
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
^
Main.java:16: error: <identifier> expected
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
^
Main.java:16: error: <identifier> expected
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
^
Main.java:16: error: illegal start of type
template <class T> bool Minimize(T &a,T b) { if (a>b) { a=b; return true; } return false;}
^
Main.java:17: error: class, interface, or enum expected
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
^
Main.java:17: error: '{' expected
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
^
Main.java:17: error: illegal start of type
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
^
Main.java:17: error: > expected
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
^
Main.java:17: error: illegal start of type
template <class T> bool Maximize(T &a,T b) { if (a<b) { a=b; return true; } return false;}
^
Main.java:19: error: class, interface, or enum expected
const int N=2e5+5,M=1e3+5,INF=1e9,lim=2e5;
^
Main.java:20: error: class, interface, or enum expected
ll Mod=1e9+7,LNF=1e18;
^
Main.java:22: error: class, interface, or enum expected
int n,k,timer=0;
^
Main.java:23: error: class, interface, or enum expected
int tin[N],tout[N],sz[N],heavy[N],node[N];
^
Main.java:24: error: class, interface, or enum expected
ll f[N],dp[N],h[N];
^
Main.java:25: error: class, interface, or enum expected
vector<ii> g[N];
^
Main.java:26: error: class, interface, or enum expected
vector<ll> val;
^
Main.java:28: error: class, interface, or enum expected
int get_id(ll x) {
^
Main.java:30: error: class, interface, or enum expected
if (pos<len(val) && val[pos]==x) return pos+1;
^
Main.java:31: error: class, interface, or enum expected
return -1;
^
Main.java:32: error: class, interface, or enum expected
}
^
Main.java:36: error: class, interface, or enum expected
node[timer]=u;
^
Main.java:37: error: class, interface, or enum expected
sz[u]=1;
^
Main.java:38: error: class, interface, or enum expected
val.pb(f[u]);
^
Main.java:40: error: class, interface, or enum expected
for (ii i:g[u])
^
Main.java:43: error: class, interface, or enum expected
h[v]=h[u]+1;
^
Main.java:44: error: class, interface, or enum expected
f[v]=f[u]+w;
^
Main.java:45: error: class, interface, or enum expected
DFS(v,u);
^
Main.java:46: error: class, interface, or enum expected
sz[u]+=sz[v];
^
Main.java:47: error: class, interface, or enum expected
if (sz[v]>sz[heavy[u]]) heavy[u]=v;
^
Main.java:48: error: class, interface, or enum expected
}
^
Main.java:51: error: class, interface, or enum expected
}
^
Main.java:58: error: class, interface, or enum expected
void get(int u,int lca_uv) {
^
Main.java:60: error: class, interface, or enum expected
int id=get_id(w);
^
Main.java:62: error: class, interface, or enum expected
if (id!=-1 && dp[id]!=LNF) Minimize(res,h[u]+dp[id]-2*h[lca_uv]);
^
Main.java:63: error: class, interface, or enum expected
}
^
Main.java:67: error: class, interface, or enum expected
Minimize(dp[id],h[u]);
^
Main.java:68: error: class, interface, or enum expected
}
^
Main.java:72: error: class, interface, or enum expected
dp[id]=LNF;
^
Main.java:73: error: class, interface, or enum expected
}
^
Main.java:78: error: class, interface, or enum expected
if (v!=p && v!=heavy[u]) sack(v,u,0);
^
Main.java:79: error: class, interface, or enum expected
}
^
Main.java:82: error: class, interface, or enum expected
for (ii i:g[u]) {
^
Main.java:84: error: class, interface, or enum expected
if (v!=p && v!=heavy[u]) {
^
Main.java:85: error: class, interface, or enum expected
for (int j=tin[v];j<=tout[v];++j) get(node[j],u);
^
Main.java:85: error: class, interface, or enum expected
for (int j=tin[v];j<=tout[v];++j) get(node[j],u);
^
Main.java:86: error: class, interface, or enum expected
for (int j=tin[v];j<=tout[v];++j) Push(node[j]);
^
Main.java:86: error: class, interface, or enum expected
for (int j=tin[v];j<=tout[v];++j) Push(node[j]);
^
Main.java:86: error: class, interface, or enum expected
for (int j=tin[v];j<=tout[v];++j) Push(node[j]);
^
Main.java:87: error: class, interface, or enum expected
}
^
Main.java:91: error: class, interface, or enum expected
Push(u);
^
Main.java:93: error: class, interface, or enum expected
if (keep==false)
^
Main.java:94: error: class, interface, or enum expected
for (int i=tin[u];i<=tout[u];++i) Pop(node[i]);
^
Main.java:94: error: class, interface, or enum expected
for (int i=tin[u];i<=tout[u];++i) Pop(node[i]);
^
Main.java:95: error: class, interface, or enum expected
}
^
Main.java:99: error: class, interface, or enum expected
signed main() {
^
Main.java:100: error: class, interface, or enum expected
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
^
Main.java:100: error: class, interface, or enum expected
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
^
Main.java:101: error: class, interface, or enum expected
OpenFile("TASK");
^
Main.java:103: error: class, interface, or enum expected
cin>>n>>k;
^
Main.java:104: error: class, interface, or enum expected
for (int i=1;i<n;++i) {
^
Main.java:104: error: class, interface, or enum expected
for (int i=1;i<n;++i) {
^
Main.java:104: error: class, interface, or enum expected
for (int i=1;i<n;++i) {
^
Main.java:105: error: class, interface, or enum expected
int u,v,w; cin>>u>>v>>w;
^
Main.java:106: error: class, interface, or enum expected
u++;
^
Main.java:107: error: class, interface, or enum expected
v++;
^
Main.java:109: error: class, interface, or enum expected
g[u].pb({v,w});
^
Main.java:110: error: class, interface, or enum expected
g[v].pb({u,w});
^
Main.java:111: error: class, interface, or enum expected
}
^
Main.java:114: error: class, interface, or enum expected
sort(all(val));
^
Main.java:115: error: class, interface, or enum expected
val.erase(unique(all(val)),val.end());
^
Main.java:117: error: class, interface, or enum expected
for (int i=1;i<=lim;++i) dp[i]=LNF;
^
Main.java:117: error: class, interface, or enum expected
for (int i=1;i<=lim;++i) dp[i]=LNF;
^
Main.java:117: error: class, interface, or enum expected
for (int i=1;i<=lim;++i) dp[i]=LNF;
^
Main.java:119: error: class, interface, or enum expected
sack();
^
Main.java:121: error: class, interface, or enum expected
if (res==LNF) cout<<-1; else cout<<res;
^
Main.java:121: error: class, interface, or enum expected
if (res==LNF) cout<<-1; else cout<<res;
^
Main.java:125: error: class, interface, or enum expected
cerr<<"Time: "<<(1.0*clock()/CLOCKS_PER_SEC)<<" s\n";
^
Main.java:126: error: class, interface, or enum expected
cerr<<"Memory: "<<abs(&M2-&M1)/1024.0/1024<<" MB\n";
^
Main.java:127: error: class, interface, or enum expected
return 0;
^
Main.java:128: error: class, interface, or enum expected
}
^
95 errors