Submission #1521075
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
int read()
{
int ans=0;
char ch=getchar();
for(;(ch<'0' || ch>'9') && ch!='-';ch=getchar());
bool flag=0;
if(ch=='-')flag=1,ch=getchar();
for(;ch>='0' && ch<='9';ch=getchar())ans=ans*10+ch-'0';
if(flag)ans=-ans;
return ans;
}
long long rell()
{
long long ans=0;
char ch=getchar();
for(;(ch<'0' || ch>'9') && ch!='-';ch=getchar());
bool flag=0;
if(ch=='-')flag=1,ch=getchar();
for(;ch>='0' && ch<='9';ch=getchar())ans=ans*10ll+(long long)(ch-'0');
if(flag)ans=-ans;
return ans;
}
void writ(int n)
{
char ch[25];
int m=0;
if(n<0)putchar('-'),n=-n;
if(n==0)
{
putchar('0');
return;
}
for(;n;n/=10)ch[m++]=n%10ll+'0';
for(;m;)putchar(ch[--m]);
}
void wrll(long long n)
{
char ch[25];
int m=0;
if(n<0)putchar('-'),n=-n;
if(n==0)
{
putchar('0');
return;
}
for(;n;n/=10ll)ch[m++]=n%10ll+'0';
for(;m;)putchar(ch[--m]);
}
const int M=1<<18,big=0x3f3f3f3f;
int st[M],pv[M],p1[M],tot,f[M],size[M];
long long pg[M],mi=big;
void side(int u,int v,int k)
{
pv[tot]=v;
pg[tot]=k;
p1[tot]=st[u];
st[u]=tot++;
}
void ges(int fa,int u)
{
//printf("ges %d %d\n",fa,u);
size[u]=1;
for(int i=st[u];~i;i=p1[i])if(pv[i]!=fa && f[pv[i]])
{
ges(u,pv[i]);
size[u]+=size[pv[i]];
}
}
int fi(int fa,int u,int n)
{
for(int i=st[u];~i;i=p1[i])if(pv[i]!=fa && f[pv[i]])
{
int k=fi(u,pv[i],n);
if(~k)return k;
}
if(size[u]>n/2)return u;else return -1;
}
long long query(int fa,int u,long long de)
{
long long ans=de+de;
if(de)mi=min(mi,de);
for(int i=st[u];~i;i=p1[i])if(pv[i]!=fa && f[pv[i]])
{
ans+=query(u,pv[i],de+pg[i]);
}
return ans;
}
long long work(int u)
{
//printf("work %d\n",u);
ges(-1,u);
//puts("RA");
u=fi(-1,u,size[u]);
//puts("RA");
long long ans=query(-1,u,0);
//printf("work %d\n",(int)ans);
/*f[u]=0;
for(int i=st[u];~i;i=p1[i])if(f[pv[i]])
{
ans+=work(pv[i]);
}*/
return ans;
}
int main()
{
int n=read();
if(n==1)
{
puts("0");
return 0;
}
tot=0;
memset(st,-1,sizeof(st));
for(int i=1;i<n;i++)
{
int u=read()-1,v=read()-1,k=read();
side(u,v,k);
side(v,u,k);
//mi=min(mi,k);
}
/*for(int i=0;i<n;i++)
{
printf("i=%d st[i]=%d\n",i,st[i]);
}*/
memset(f,1,sizeof(f));
wrll(work(0)-(long long)mi);
puts("");
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Tree and Hamilton Path |
User |
bx2k |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2409 Byte |
Status |
WA |
Exec Time |
36 ms |
Memory |
10880 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 1100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
All |
sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
2 ms |
5376 KB |
sample_02.txt |
WA |
2 ms |
5376 KB |
subtask_1_01.txt |
AC |
2 ms |
5376 KB |
subtask_1_02.txt |
AC |
26 ms |
6784 KB |
subtask_1_03.txt |
WA |
14 ms |
6144 KB |
subtask_1_04.txt |
AC |
27 ms |
6912 KB |
subtask_1_05.txt |
WA |
18 ms |
7040 KB |
subtask_1_06.txt |
AC |
12 ms |
6016 KB |
subtask_1_07.txt |
AC |
13 ms |
6016 KB |
subtask_1_08.txt |
AC |
15 ms |
6144 KB |
subtask_1_09.txt |
AC |
11 ms |
5888 KB |
subtask_1_10.txt |
AC |
5 ms |
6016 KB |
subtask_1_11.txt |
AC |
9 ms |
5888 KB |
subtask_1_12.txt |
AC |
29 ms |
6912 KB |
subtask_1_13.txt |
WA |
29 ms |
6912 KB |
subtask_1_14.txt |
AC |
30 ms |
6912 KB |
subtask_1_15.txt |
AC |
28 ms |
6912 KB |
subtask_1_16.txt |
AC |
29 ms |
6912 KB |
subtask_1_17.txt |
AC |
28 ms |
6912 KB |
subtask_1_18.txt |
AC |
29 ms |
6912 KB |
subtask_1_19.txt |
WA |
29 ms |
6912 KB |
subtask_1_20.txt |
AC |
29 ms |
6912 KB |
subtask_1_21.txt |
AC |
29 ms |
6912 KB |
subtask_1_22.txt |
WA |
29 ms |
7040 KB |
subtask_1_23.txt |
AC |
33 ms |
9600 KB |
subtask_1_24.txt |
AC |
34 ms |
10752 KB |
subtask_1_25.txt |
AC |
30 ms |
6912 KB |
subtask_1_26.txt |
AC |
30 ms |
7936 KB |
subtask_1_27.txt |
AC |
36 ms |
10368 KB |
subtask_1_28.txt |
AC |
29 ms |
7040 KB |
subtask_1_29.txt |
AC |
35 ms |
10880 KB |
subtask_1_30.txt |
AC |
35 ms |
9984 KB |
subtask_1_31.txt |
AC |
25 ms |
6912 KB |
subtask_1_32.txt |
AC |
26 ms |
6912 KB |
subtask_1_33.txt |
AC |
16 ms |
6528 KB |
subtask_1_34.txt |
AC |
21 ms |
6912 KB |