P1199- 3つのゲーム

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 }

 

おすすめ

転載: www.cnblogs.com/Asurudo/p/11457733.html