import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static int N,M,pack_cnt=0,each_cnt=0,pack_min=1000,each_min=1000,result=0,pack=0, each=0;
public static void main(String args[])throws IOException{
st = new StringTokenizer(br.readLine()," ");
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
pack_cnt=N/6;
each_cnt=N%6;
for(int i=0;i<M;i++){
st = new StringTokenizer(br.readLine()," ");
pack = Integer.parseInt(st.nextToken());
each = Integer.parseInt(st.nextToken());
if(pack_min>=pack){
pack_min = pack;
}
if(each_min>=each){
each_min = each;
}
}
if(pack_min<each_min*6){
result += pack_cnt * pack_min;
if(pack_min< each_cnt*each_min){
result += pack_min;
}else{
result += each_cnt*each_min;
}
}else{
result += each_min * N;
}
System.out.println(result);
}
}
문제에 주어진 예제 입력을 따라가다보면 충분히 풀 수 있는 문제였다.
나도 풀면서 간과하고 있던게있는데, 만약 17개를 사야한다면, 12개(패키지2개) +5개(낱개)를 사는거 보다, 그냥 패키지 3개를 사서 1개는 안쓰는것이 더 싸게먹힌다는것이다.
기타줄을 남기면 안된다는 말은 없기때문이다.
이 점을 유의해서 작성하면된다. 케이스는 3개정도 있다.