적분

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

요약
정수점 일부에서 f 값이 주어질 때, 각 구간에서 단조인 조각별 선형 함수로 확장해 0부터 n까지의 적분값이 y가 되도록 한다.
난이도

어려움10점 중 8점

유형
구간
정답자
아직 제출이 없습니다

문제

양의 정수 nn에 대해 [n][n]은 실수 구간 {x:0≤x≤n}\{x : 0 \le x \le n\}을 뜻한다. 함수 f:[n]→Rf : [n] \to \mathbb{R}은 일부만 정해져 있다. [n][n]의 부분집합 SS에 속하는 점에서만 ff의 값이 주어진다.

집합 SS는 다음을 만족한다.

  1. SS의 모든 점은 정수다.
  2. [n][n]의 양 끝점 00과 nn은 둘 다 SS에 속한다.

함수 ff는 다음을 만족한다.

  1. [n][n]의 정수점에서 ff의 값은 정수다.
  2. SS의 이웃한 두 점 사이에서 ff는 단조롭다. SS에서 이웃한 두 점 L<RL < R에 대해 f(L)≤f(L+1)≤⋯≤f(R)f(L) \le f(L+1) \le \cdots \le f(R) 또는 f(L)≥f(L+1)≥⋯≥f(R)f(L) \ge f(L+1) \ge \cdots \ge f(R)이 성립한다.
  3. [n][n]의 정수가 아닌 점 xx에서 f(x)f(x)는 f(⌊x⌋)f(\lfloor x \rfloor)와 f(⌈x⌉)f(\lceil x \rceil)의 선형 보간으로 정해진다. 곧 f(x)=(⌈x⌉−x)f(⌊x⌋)+(x−⌊x⌋)f(⌈x⌉)f(x) = (\lceil x \rceil - x) f(\lfloor x \rfloor) + (x - \lfloor x \rfloor) f(\lceil x \rceil)이다.

[n]∖S[n] \setminus S의 정수점에서 ff의 값은 마음대로 정할 수 있다. (SS가 [n][n]의 정수점 전체를 포함할 수도 있다.) 주어진 yy에 대해 ∫0nf(x) dx=y\int_0^n f(x)\,dx = y, 곧 00과 nn 사이에서 ff 아래의 면적이 yy가 되도록 값을 정할 수 있는지 판정하라.

입력

입력은 여러 개의 테스트 케이스로 이루어지고 파일 끝에서 끝난다.

테스트 케이스의 첫 줄에는 세 정수 NN, MM, YY가 주어진다. 차례로 구간의 길이, 집합 SS의 크기, yy의 값이다. 이어지는 MM개의 줄에는 SS의 한 점에서 ff의 값을 나타내는 두 정수 XX와 FF가 주어지고, f(X)=Ff(X) = F를 뜻한다. XX는 증가하는 순서로 주어지지 않는다.

제한

  • 1≤N≤1061 \le N \le 10^6
  • 모든 테스트 케이스의 NN의 합은 10610^6 이하다
  • 0≤X≤N0 \le X \le N이고, MM개의 XX는 서로 다른 정수이며 00과 NN을 포함한다
  • 0≤F≤1060 \le F \le 10^6, FF는 정수
  • 0≤Y≤1090 \le Y \le 10^9, YY는 정수
  • 위 조건을 지키면서 [n]∖S[n] \setminus S의 정수점에 값을 어떻게 정하더라도 ∫0nf(x) dx≤109\int_0^n f(x)\,dx \le 10^9이다

출력

각 테스트 케이스마다 x∈[n]∖Sx \in [n] \setminus S인 정수점에 ff의 값을 정해 ∫0nf(x) dx=y\int_0^n f(x)\,dx = y, 곧 00과 nn 사이에서 ff 아래의 면적이 yy가 되도록 만들 수 있는지 판정한다.

만들 수 없으면 문자 N만 있는 한 줄을 출력한다. 만들 수 있으면 문자 S를 출력하고 이어서 x∈[n]∖Sx \in [n] \setminus S인 정수점의 f(x)f(x) 값을 xx가 커지는 순서로 같은 줄에 출력한다. 맨 앞 문자와 각 값은 공백 하나로 구분한다. 답이 여러 개면 값의 수열이 사전순으로 가장 앞선 것을 출력한다.

예제3

  1. 예제 1

    입력
    5 6 10
    0 2
    1 2
    5 2
    2 2
    3 2
    4 2
    5 2 10
    0 0
    5 10
    2 2 5
    0 1
    2 2
    10 3 18
    0 2
    6 4
    10 0
    2 2 1
    0 0
    2 1
    
    예상 출력
    S
    S 0 0 0 5
    N
    S 2 2 2 2 2 1 1 1
    N
    
  2. 예제 2

    입력
    4 2 10
    0 4
    4 0
    4 2 6
    0 4
    4 0
    4 2 0
    0 0
    4 0
    4 2 12
    0 4
    4 0
    
    예상 출력
    S 3 3 2
    S 2 1 1
    S 0 0 0
    S 4 3 3
    
  3. 예제 3

    입력
    5 2 25
    0 2
    5 8
    7 4 7
    7 1
    0 1
    3 0
    5 2
    
    예상 출력
    S 2 2 8 8
    S 0 0 2 2