만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

작은 장난

면접 대비

시간 제한2초메모리 제한1024 MB

요약
인접 행렬로 주어진 가중치 그래프에서 간선 하나를 제거했을 때 정점 1에서의 최단 거리가 바뀌는 정점의 최대 개수를 구합니다.
난이도

보통10점 중 5점

유형
그래프, 최단 경로, 트리
정답자
아직 제출이 없습니다

문제

어느 날 밤 알은 산책을 나가기로 했다. 산책 도중 외계인은 심심해져서 장난을 치기로 했다. 도시 지도를 본 알프는 막을 도로를 하나 고른다. 그가 고르는 도로는 그 도로를 없앴을 때 집에서 명소까지의 최단 거리가 변하는 명소의 수가 가장 많은 도로이다.

도시는 정점이 nn개인 그래프로 표현된다. 알프의 집은 1번 정점에 있다.

그래프에서 간선을 하나 제거했을 때 거리가 변하는 정점의 최대 개수를 출력한다.

입력

첫 줄에 정점의 개수 nn (1≤n≤3001 \le n \le 300)이 주어진다. 이어지는 nn개의 줄에는 각각 nn개의 정수 ai,ja_{i,j} (−1≤ai,j≤100000-1 \le a_{i,j} \le 100000)가 주어지며, 이는 인접 행렬이다. 간선이 없으면 ai,j=−1a_{i,j} = -1이다. ai,i=0a_{i,i} = 0이고, i≠ji \ne j이면 ai,j>0a_{i,j} > 0이 보장된다.

출력

문제의 답을 출력한다.

예제1

  1. 예제 1

    입력
    5
    0 16 12 1 12 
    16 0 12 13 -1 
    12 12 0 5 2 
    1 13 5 0 2 
    12 -1 2 2 0 
    
    예상 출력
    4