1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 typedefの長い 長いLL。 4 typedefをダブルデシベル。 5 の#define 0x3f3f3f3f INF 6 の#define(iは、、B();私は、Bを<I ++はiは=(A)INT)ため_for 7 の#define _rep(I、B)(iは(= int型用A); I> B; I - ) 8 9 インライン)(読み取りllの 10 { 11 LL ANS = 0 。 12 チャー CH = GETCHAR()、=最後' ' 。 13 しばらく(!isdigit(CH))最後の= CH、CH = getchar関数(); 14 一方(isdigit(CH))ANS =(ANS << 1)+(ANS << 3)+ CH - ' 0 '、CH = GETCHAR()。 15 であれば(最後== ' - ')ANS = - ANS。 16の リターンANS; 17 } 18インラインボイドライト(LLのX) 19 { 20の 場合(X < 0)は、x = -x、のputchar(' - ' )。 21 であれば(X> = 10)、書き込み(X / 10 )。 22 のputchar(Xの%10 + ' 0 ' )。 23 } 24 INT N。 25 INT [ 503 ] [ 503 ]。 26 のint main()の 27 { 28 N = 読み取ります()。 29 _for(I、1、N + 1 ) 30 _for(J、1、N + 1 )、 31 であれば(I == j)は 32 [I] [J] = - 1; 33 他の 場合(iが< j)を 34 [I] [J] = (読み取り) 35 他の 36 [I] [j]は= [J] [I]を、 37 38 のint RNT = 0 。 39 PRIORITY_QUEUE < 整数 > PQ; 40 _for(I、1、N + 1 ) 41 { 42 ながら(!pq.empty()) 43 pq.pop()。 44 _for(J、1、N + 1 ) 45 { 46 であれば(pq.size()< 2 ) 47 { 48 pq.push([I] [J])。 49 続け; 50 } 51 他の 場合([I] [J]> pq.top()) 52 { 53 のint T1 = pq.top()。 54 pq.pop(); pq.pop()。 55 pq.push([I] [J])。 56 pq.push(T1)。 57 続け; 58 } 59 INT TMP = pq.top()。 60 pq.pop()。 61 であれば([I] [J]> pq.top()) 62 { 63 pq.pop(); 64 pq.push([I] [J])。 65 } 66 pq.push(TMP)。 67 } 68 pq.pop()。 69 RNT = MAX(RNT、pq.top())。 70 } 71 のprintf(" 1 \ N%D " 、RNT)。 72 リターン 0 ; 73 }