[BOJ 13643] Integral
View as PDFDado um inteiro positivo n, denotaremos por [n] o intervalo real {x : 0 ≤ x ≤ n}. Uma função f : [n] ⇒ R é parcialmente especificada, sendo fornecidos valores de f apenas em pontos de um subconjunto S de [n].</p>
O conjunto S satisfaz as seguintes propriedades:
- Os pontos em S são todos inteiros.
- Os extremos 0 e n de [n] estão ambos em S.
A função f satisfaz as seguintes propriedades:
- Os valores de f nos pontos inteiros de [n] são inteiros.
- Para cada ponto inteiro x em [n] \ S (ou seja, nos pontos inteiros de [n] que não estão em S), a função f é monótona no intervalo [x − 1, x + 1]. Em outras palavras, pelo menos uma das desigualdades f(x − 1) ≤ f(x) ≤ f(x + 1) ou f(x − 1) ≥ f(x) ≥ f(x + 1) é satisfeita.
- Para cada ponto não inteiro x em [n], o valor de f(x) é dado pela interpolação linear de f(⌊x⌋) e f(⌈x⌉), isto é, f(x) = (x − ⌊x⌋)f(⌊x⌋) + (⌈x⌉ − x)f(⌈x⌉).
Temos ainda a liberdade de especificar os valores de f nos pontos inteiros de [n]\S (note no entanto que S pode conter todos os pontos inteiros de [n]). Gostaríamos de utilizar essa flexibilidade para fazer com que ∫n0 f(x)dx = y, isto é, a área sob f(x) entre os extremos 0 e n seja igual a y, um valor dado.
Seu problema então é decidir se isso é possível ou não.
입력 형식
A primeira linha de um caso de teste contém três inteiros, N, M e Y , respectivamente a amplitude do intervalo, o tamanho do conjunto S e o valor de y. Cada uma das M linhas seguintes descreve a função em um ponto de S, contendo dois inteiros X e F, representando f(X) = F. Os valores de X não estão necessariamente em ordem crescente.</p>
Restrições
- 1 ≤ N ≤ 106
- 0 ≤ X ≤ N, X inteiro, ∀X ∈ S
- 0 ≤ F ≤ 106, F inteiro
- 0 ≤ Y ≤ 109, Y inteiro
- ∫n0 f(x)dx ≤ 109 para qualquer atribuição de valores a f(x) para x ∈ [n] \ S satisfazendo as restrições do enunciado.
Para cada caso de teste, determine se existe atribuição de valores a f(x) para os pontos inteiros x ∈ [n] \ S tal que ∫n0 f(x)dx = y, isto é, a área sob f(x) entre os extremos 0 e n seja igual a y. Em caso negativo, seu programa deve imprimir uma linha contendo apenas o caractere ‘N’. Em caso afirmativo, seu programa deve imprimir uma linha contendo o caractere ‘S’, seguido dos valores de f(x) para os pontos inteiros x ∈ [n] \ S, em ordem crescente de valores de x. O caractere inicial e os valores seguintes, se houver, devem ser separados por um espaço em branco. Caso mais de uma solução seja possível, imprima aquela que for lexicograficamente menor.
예제 입력
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
Comments