포럼
문제 R03678

외판원 (Salesman)

설명

August 8 – 15, Plovdiv, Bulgaria

Contest Day 2 - Salesman

English 1.2

외판원 (SALESMAN)

외판원은 육지에서의 여행 일정을 최적으로 짜는 것이 다루기 힘든 계산 문제라고 판단하여, 사업을 도나우강이라는 선형 세계로 옮기기로 했다. 그에게는 강을 따라 어디서든 어디로든 순식간에 데려다줄 수 있는 매우 빠른 배가 있지만, 안타깝게도 연비가 끔찍하다. 상류(강의 발원지 방향)로 1미터 이동할 때마다 U 달러, 하류(발원지에서 멀어지는 방향)로 1미터 이동할 때마다 D 달러가 든다.

외판원이 방문하고 싶은 무역 박람회가 강을 따라 N개 있다. 각 박람회는 하루만 열린다. 각 박람회 X에 대해, 외판원은 배를 산 날로부터 며칠째인지로 측정한 날짜 TX를 안다. 또한 강의 발원지에서 하류로 몇 미터 떨어져 있는지로 측정한 박람회의 위치 LX와, 이 박람회에 참가하면 벌게 될 달러 액수 MX도 안다. 그는 강가에 있는 자신의 집에서 여행을 시작하고 끝내야 하며, 집의 위치는 발원지에서 하류로 S 미터 지점이다.

외판원이 여행이 끝났을 때의 이익을 최대화할 수 있도록, 어느 박람회에 (참가한다면) 어떤 순서로 참가할지 선택하는 것을 도와주시오. 외판원의 총이익은 참가한 박람회들에서 번 달러의 합에서, 강을 오르내리며 쓴 달러의 총합을 뺀 값으로 정의된다.

박람회 A가 박람회 B보다 먼저 열리면 외판원은 이 순서로만 방문할 수 있음에 유의하라(즉, B를 방문한 뒤 A를 방문할 수 없다). 하지만 두 박람회가 같은 날에 열리면 어느 순서로든 둘 다 방문할 수 있다. 하루에 방문할 수 있는 박람회 수에는 제한이 없지만, 당연히 같은 박람회를 두 번 방문해서 이익을 두 번 얻을 수는 없다. 이미 방문한 박람회는 아무것도 얻지 못한 채 지나갈 수 있다.

TASK
모든 박람회의 날짜, 위치, 수익성, 그리고 외판원의 집 위치와 이동 비용이 주어졌을 때, 여행이 끝났을 때 그가 낼 수 있는 최대 이익을 구하는 프로그램을 작성하시오.

EXAMPLE

Sample Input

Sample Output
4 5 3 100
2 80 100
20 125 130
10 75 150
5 120 110
50

최적의 일정은 박람회 1과 3(위치 80과 75에 있는 것들)을 방문하는 것이다. 사건들의 순서와 그에 따른 이익과 비용은 다음과 같다:

외판원은 상류로 20미터 이동하며 100달러를 쓴다. 지금까지의 이익: -100

박람회 1에 참가하여 100을 번다. 지금까지의 이익: 0

상류로 5미터 이동하며 25를 쓴다. 지금까지의 이익: -25

박람회 3에 참가하여 150을 번다. 지금까지의 이익: 125

집으로 돌아가기 위해 하류로 25미터 이동하며 75를 쓴다. 최종 이익: 50

제약

\(1 \le N \le 500,000\)

박람회의 수
\(1 \le D \le U \le 10\)

상류(U) 또는 하류(D)로 1미터 이동하는 비용
\(1 \le S \le 500,001\)

외판원의 집 위치
\(1 \le Tk \le 500,000\)

박람회 k가 열리는 날
\(1 \le Lk \le 500,001\)

박람회 k의 위치
\(1 \le Mk \le 4,000\)

박람회 k에 참가하면 외판원이 벌게 될 달러 액수

August 8 – 15, Plovdiv, Bulgaria

Contest Day 2 - Salesman

English 1.2

입력 형식

프로그램은 표준 입력에서 다음 데이터를 읽어야 한다:
• 첫 줄에는 정수 N, U, D, S가 이 순서로 공백 하나씩으로 구분되어 주어진다.
• 다음 N개의 줄에는 N개의 박람회가 특별한 순서 없이 주어진다. 이 N개의 줄 중 k번째 줄은 k번째 박람회를 나타내며, 공백 하나씩으로 구분된 세 정수가 있다: 박람회의 날짜 Tk, 위치 Lk, 그리고 외판원에게 주는 수익 Mk.

NOTE: 입력으로 주어지는 모든 위치는 서로 다르다. 즉, 같은 위치에서 열리는 두 박람회는 없으며, 외판원의 집에서 열리는 박람회도 없다.

출력 형식

프로그램은 표준 출력에 정수 하나가 있는 한 줄을 출력해야 한다: 여행이 끝났을 때 외판원이 낼 수 있는 최대 이익.

GRADING
총 60점에 해당하는 여러 테스트에서는 같은 날에 열리는 두 박람회가 없다.
총 40점에 해당하는 여러 테스트에서는 입력의 어떤 수도 5,000을 넘지 않는다.
위 두 조건이 모두 성립하는 테스트는 15점에 해당한다.
두 조건 중 적어도 하나가 성립하는 테스트는 85점에 해당한다.

문제 정보

생성자가 기록되지 않았습니다.

출처 IOI 2009

평가 및 의견

Salesman

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Salesman

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8