import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Schedule {
int cost, pay;
public Schedule(int cost, int pay) {
this.cost = cost;
this.pay = pay;
}
}
public class Main {
private static boolean Debug = false;
private static int DateLen;
private static Schedule[] Date;
private static int MaxPayment;
public static void main(String[] args) throws Exception {
BufferedReader br;
StringTokenizer st;
if (Debug && false) {
File f = new File("C:\\Users\\wvimi\\Downloads", "sample_input (11).txt");
FileReader reader = new FileReader(f);
br = new BufferedReader(reader);
} else {
br = new BufferedReader(new InputStreamReader(System.in)); // 직접입력시 이용
}
// 일정의 길이
DateLen = Integer.parseInt(br.readLine());
Date = new Schedule[DateLen];
// 일정 읽기
for (int i = 0; i < DateLen; i++) {
st = new StringTokenizer(br.readLine());
Date[i] = new Schedule(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
MaxPayment = -1;
checkDate(0, 0);
System.out.println(MaxPayment);
}
private static void checkDate(int index, int sum) {
int cost = Date[index].cost;
int pay = Date[index].pay;
int next = index + cost;
log("checkDate(%d) sum (%d) next(%d)", index, sum, next);
// 오늘 일정을 사용하고, 다음 일정으로 옮긴다.
if (next < DateLen) {
checkDate(next, sum + pay);
}
// 오늘 일정을 사용하지 않는 경우, 다음 일정으로 옮긴다. (단, 하루짜리 일정은 무조건 체킹)
if (cost != 1 && index + 1 < DateLen) {
checkDate(index + 1, sum);
}
int payment = (next <= DateLen ? sum + pay : sum);
log("최종금액: %d sum: %d next: %d", payment, sum, next);
if (MaxPayment < payment) {
MaxPayment = payment;
}
}
public static void log(String input) {
if (Debug) {
System.out.println(input);
}
}
public static void log(String input, Object... args) {
if (Debug) {
System.out.println(String.format(input, args));
}
}
}
'Knowledge > 알고리즘' 카테고리의 다른 글
백준 14499번: 주사위 굴리기 (0) | 2017.10.19 |
---|---|
백준 14502번: 연구소 (0) | 2017.10.17 |
백준 13458번: 시험 감독 (0) | 2017.10.17 |
백준: 14503번: 로봇 청소기 (0) | 2017.10.17 |
1953. [모의 SW 역량테스트] 탈주범 검거 (0) | 2017.10.15 |