結果
問題 | No.3113 The farthest point |
ユーザー |
![]() |
提出日時 | 2025-04-23 12:45:25 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 1,233 bytes |
コンパイル時間 | 409 ms |
コンパイル使用メモリ | 29,952 KB |
実行使用メモリ | 11,520 KB |
最終ジャッジ日時 | 2025-04-23 12:45:29 |
合計ジャッジ時間 | 2,546 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:8:59: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 8 | #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) | ^~~~~ main.c:62:9: note: in expansion of macro ‘wt1’ 62 | wt1(z); | ^~~ main.c:63:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 63 | _exit(0); | ^~~~~ main.c:63:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define rd_signed() ({long _s=*rp=='-'&&++rp,_v=rd();_s?-_v:_v;}) #define wt(v) ({ulong _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define rep(v,e) for(typeof(e)v=0;v<e;++v) #define reps(v,s,e) for(typeof(e)v=s;v<e;++v) #define rrep(v,e) for(typeof(e)v=e;v--;) #define chmax(v,a) (v=v>=a?v:a) typedef unsigned long ulong; #define MAXN 200000 int en[MAXN+2]; int eb[MAXN<<1]; int ew[MAXN<<1]; int uv[MAXN<<1]; int uw[MAXN]; int n; void f0(){ rd_init(); n=rd(); rep(j,n-1){ { int t=rd(); uv[j<<1|0]=t; ++en[t]; } { int t=rd(); uv[j<<1|1]=t; ++en[t]; } { int t=rd_signed(); uw[j]=t; } } { int s=0; rep(i,n+2){ en[i]=s+=en[i]; } } rrep(j,n-1<<1){ int k=--en[uv[j]]; eb[k]=uv[j^1]; ew[k]=uw[j>>1]; } } long z; long f(int i,int p){ long m=0; reps(k,en[i],en[i+1]){ int j=eb[k]; if(j!=p){ long r=f(j,i)+ew[k]; chmax(z,m+r); chmax(m,r); } } return m; } int main(){ f0(); f(1,1); wt1(z); _exit(0); }