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

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

문제 세트 구성

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

요약
각 문제마다 임의로 고른 k개 문제 집합에 그 문제가 포함되고 팀이 제한 시간 t 안에서 개수 우선, 총 시간 최소 순으로 문제를 풀 때 그 문제를 풀 확률을 구한다.
난이도

어려움10점 중 9점

유형
확률, 조합론, 동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

당신은 심판으로서 대회의 문제 세트를 구성한다. 후보 문제들이 여럿 있다. 각 문제에 대해, 어떤 팀이 그 문제를 풀 수 있을 확률과, 풀 수 있다면 해결책을 구현하는 데 걸리는 시간을 알고 있다. 모든 구현 시간은 서로 다르다.

모든 팀이 문제 세트를 마주했을 때 취하는 전략을 알고 있다. 먼저, 그들이 풀 수 있는 문제의 집합을 결정한다(대회 시작 시점에 즉시 할 수 있다고 가정한다). 그런 다음, 시간 제한 내에 풀 수 있는 문제를 최대한 많이 푼다. 시간 제한 내에 풀 수 있는 부분집합이 여럿이라면, 먼저 풀 수 있는 문제 수로 동점을 깨고, 그다음에는 그 문제들을 모두 푸는 데 걸리는 총 시간을 최소화하는 쪽으로 동점을 깬다.

어떤 문제의 난이도를, 그 문제가 풀에서 균등하게 무작위로 선택된 k−1k-1개의 다른 문제와 함께 크기 kk의 문제 세트에 포함되었을 때 팀이 그 문제를 풀 확률로 정의한다. 모든 문제의 난이도를 구하라.

입력

첫 줄에 세 정수 nn, kk (1≤k≤n≤501 \le k \le n \le 50)와 tt (1≤t≤25001 \le t \le 2500)가 주어진다. nn은 풀에 있는 문제 수, kk는 세트에 선택할 문제 수, tt는 대회의 시간 제한이다.

다음 nn개의 줄에는 각각 실수 pp (0.0≤p≤1.00.0 \le p \le 1.0)와 정수 ss (1≤s≤t1 \le s \le t)가 주어지며, 이는 문제를 나타낸다. pp는 팀이 그 문제를 풀 수 있을 확률이고, ss는 푸는 데 걸리는 시간이다. 확률은 소수점 이하 최대 네 자리까지 주어진다. 모든 풀이 시간은 서로 다르다.

출력

입력 순서대로 각 문제의 난이도를 한 줄에 하나씩 nn줄에 걸쳐 출력한다. 각 값은 절대 오차 또는 상대 오차 10−610^{-6} 이내여야 한다.

예제2

  1. 예제 1

    입력
    3 1 100
    0.3432 99
    0.1231 100
    0.5878 1
    
    예상 출력
    0.343200
    0.123100
    0.587800
    
  2. 예제 2

    입력
    3 2 100
    0.3432 99
    0.1231 100
    0.5878 2
    
    예상 출력
    0.242334
    0.065797
    0.587800