CEO를 포함하고 급여 범위가 D 이하가 되는 가장 큰 루트 연결 부분 트리를 구합니다.
어려움8트리슬라이딩 윈도우정렬세그먼트 트리아직 제출이 없습니다시간 제한10초메모리 제한512 MB페어랜드는 회사의 조직과 급여를 다음 법으로 규정한다.
여기에 법이 하나 더 생겼다.
마리는 페어랜드 제너럴 스터프 사의 대표이고, 회사가 새 법을 지키도록 만들어야 한다. 그러려면 직원 일부를 내보내야 할 수도 있다. 마리는 직원 명단과 각 직원의 상사, 각 직원의 연봉을 알고 있다. 마리 자신을 포함해 남길 수 있는 직원 수의 최댓값을 구하라.
첫 줄에 테스트 케이스의 수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 직원 수 N과 허용되는 연봉 차이의 최댓값 D가 공백으로 구분되어 주어진다. 둘째 줄에는 정수 네 개 S0, As, Cs, Rs가, 셋째 줄에는 정수 네 개 M0, Am, Cm, Rm이 공백으로 구분되어 주어진다. 이 여덟 개의 정수는 다음 두 수열을 정의한다.
Si+1=(Si×As+Cs)modRs
Mi+1=(Mi×Am+Cm)modRm
마리의 직원 번호는 0이고 나머지 직원의 번호는 1부터 N−1까지다. 직원 i의 연봉은 Si다. 마리를 제외한 직원 i의 상사는 Mimodi다. 따라서 M0은 마리의 상사와 무관하다. 마리에게는 상사가 없다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 법 1번부터 7번까지를 모두 지키면서 마리가 자기 자신을 포함해 남길 수 있는 직원 수의 최댓값이다.
첫 번째 예제 입력의 첫 테스트 케이스에는 대표뿐이고 다른 직원이 없다. 어떤 법도 어기지 않으므로 아무도 내보내지 않는다.
두 번째 테스트 케이스에서 직원 1번부터 5번까지의 수열은 다음과 같다.
그래서 조직도는 다음과 같다. 마리(0번)의 부하는 1번, 1번의 부하는 2번과 3번과 5번, 2번의 부하는 4번이다. 0번부터 5번까지의 연봉은 각각 10, 13, 16, 2, 5, 8이고 D=5다.
최적의 선택은 0번, 1번, 5번을 남기는 것이다. 세 사람의 연봉은 각각 10, 13, 8이다. 예를 들어 2번은 남길 수 없다. 2번의 연봉은 0번의 연봉 10에서 5를 넘게 떨어져 있는데 0번은 내보낼 수 없으므로, 2번과 2번에게 보고하는 직원은 모두 내보내야 한다.