아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

서브프라임

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

요약
각 은행의 준비금과 은행 사이의 채권 목록이 주어질 때, 모든 채권이 동시에 결제된 뒤 모든 은행의 잔액이 0 이상인지 판정한다.
난이도

쉬움10점 중 2점

유형
배열, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

최근 경제 위기의 원인 중 하나는 은행이 상환 능력이 없는 사람에게 돈을 빌려주고, 그 대출을 채권으로 묶어 다른 은행에 다시 팔았다는 점이다. 돈을 빌린 사람이 갚지 못하게 되자 이 구조 전체가 무너졌다.

위기는 Nlogonia까지 번졌다. 총리 Man Dashuva는 중앙은행 총재에게 해결책을 요구했고, 총재는 이런 방안을 내놓았다. 모든 은행이 자기 준비금과 자기가 받을 채권만으로 자기가 발행한 채권을 전부 청산할 수 있다면 구제 금융은 필요 없다.

은행과 채권의 수가 많아 손으로는 확인하기 어렵다. 은행 목록과 은행이 발행한 채권 목록이 주어질 때, Nlogonia 중앙은행의 구제 금융 없이 모든 채권을 청산할 수 있는지 판정하는 프로그램을 작성하라.

청산은 모든 채권을 동시에 정산하는 방식으로 이루어진다. 정산을 마친 뒤 은행 ii가 보유한 금액은 준비금 RiR_i에서 자기가 발행한 채권 금액의 합을 빼고, 자기가 채권자인 채권 금액의 합을 더한 값이다. 이 금액이 음수인 은행이 하나라도 있으면 구제 금융이 필요하고, 모든 은행이 00 이상이면 필요하지 않다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 은행의 수 BB와 은행이 발행한 채권의 수 NN이 공백으로 구분되어 주어진다 (1≤B≤201 \le B \le 20, 1≤N≤201 \le N \le 20). 은행은 11부터 BB까지의 정수로 구분한다. 둘째 줄에는 BB개의 정수 RiR_i가 공백으로 구분되어 주어지며, ii번 은행의 준비금을 뜻한다 (0≤Ri≤1040 \le R_i \le 10^4). 이어지는 NN개의 줄에는 각각 세 정수 DD, CC, VV가 공백으로 구분되어 주어진다. DD는 채무자 은행 (1≤D≤B1 \le D \le B), CC는 채권자 은행 (1≤C≤B1 \le C \le B, D≠CD \ne C), VV는 채권 금액 (1≤V≤1041 \le V \le 10^4)이다.

같은 두 은행 사이에 채권이 여러 개 있을 수 있다.

입력의 끝은 공백으로 구분된 두 개의 00만 있는 줄로 표시한다. 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 한 줄에 문자 하나를 출력한다. Nlogonia 중앙은행의 구제 금융 없이 모든 채권을 청산할 수 있으면 S, 구제 금융이 필요하면 N을 출력한다.

예제1

  1. 예제 1

    입력
    3 3
    1 1 1
    1 2 1
    2 3 2
    3 1 3
    3 3
    1 1 1
    1 2 1
    2 3 2
    3 1 4
    3 3
    1 1 1
    1 2 2
    2 3 2
    3 1 2
    0 0
    
    예상 출력
    S
    N
    S