페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
5
ms
메모리 제한
1024
MB
명의 사람을 그룹으로 나누어야 한다. 각 사람은 정확히 하나의 그룹에 속해야 하며, 각 그룹에는 정확히 한 명의 리더가 있어야 한다. 각 사람에게는 리더로서의 특성을 나타내는 세 정수 , , 이 있다. 번호가 인 사람은 사람이 명인 그룹의 리더가 될 수 있다 (인 경우, 번 사람이 리더가 되려면 자신의 그룹에 완전히 혼자 있어야 한다). 이때 그룹의 힘은 정수 로 정의된다. 그룹들의 힘의 합이 최대가 되도록 사람들을 그룹으로 나누는 것이 과제이다.
여러 테스트 케이스 그룹으로 해답을 평가한다. 한 그룹에서 점수를 얻으려면 그 그룹의 모든 테스트 케이스를 통과해야 한다.
그룹 | 배점 | 제한
||
||
||
||
|| 추가 제한 없음
입력의 첫째 줄에는 사람의 수를 나타내는 정수 ()이 주어진다.
그다음 개의 줄에 각각 세 정수 , , (, )이 주어진다.
달성할 수 있는 힘의 합의 최댓값을 정수 하나로 출력한다.
5
10 7 2
-1 20 4
5 10 3
2 2 2
2 2 2
66
5
6 -40 4
7 -40 4
10 -20 2
11 -30 3
12 -10 1
3
4
1000000000 1000000000 2
-1000000000 10 2
900000000 -1000000000 2
-20 -25 1
3800000000
첫 번째 예제에서는 예를 들어 사람들을 세 그룹으로 나누어 힘의 최댓값을 달성할 수 있다. 한 그룹은 1번 사람과 4번 사람으로 구성되고(1번 사람이 리더), 한 그룹은 3번 사람과 5번 사람으로 구성되며(3번 사람이 리더), 나머지 한 그룹에는 2번 사람이 속한다. 이렇게 하면 힘은 이 된다. 이 테스트 케이스는 테스트 그룹 3에 포함될 수 있다.
두 번째 예제에서는 예를 들어 사람들을 두 그룹으로 나누어 힘의 최댓값을 달성할 수 있다. 한 그룹에는 1, 2, 3번 사람이 속하고(3번 사람이 리더), 다른 그룹에는 4번 사람과 5번 사람이 속한다(4번 사람이 리더). 이렇게 하면 힘은 이 된다. 이 테스트 케이스는 테스트 그룹 4에 포함될 수 있다.
Programmeringsolympiaden
로그인 상태를 확인하는 중입니다.