백준공부/java
[백준] 1049번 기타줄 문제! (silver 4
gomduri43
2022. 8. 8. 18:19
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.parseInt(st.nextToken());
int m=Integer.parseInt(st.nextToken());
int minOfPack=1000; //범위가 1000이하이므로,
int minOfOnce=1000; //위와 동일
int count=0;
//생성 및 젤 작은 값 구하기,
for(int i=0; i<m; i++) {
st=new StringTokenizer(br.readLine());
int pack=Integer.parseInt(st.nextToken());
int once=Integer.parseInt(st.nextToken());
if(pack<minOfPack) {
minOfPack=pack;
}
if(once<minOfOnce) {
minOfOnce=once;
}
}
//낱개가 젤 쌀 경우,
if(6*minOfOnce<=minOfPack) {
bw.write(minOfOnce*n+"");
}
//패키지가 낱개때보다 싸면서, n이 6의 배수일 경우
else if(n%6==0 && 6*minOfOnce>minOfPack) {
bw.write(n/6*minOfPack+"");
}
else {
while(true) {
if(n>=6) {
n-=6;
count+=minOfPack;
}
else {
if(n*minOfOnce<minOfPack) {
count+=n*minOfOnce;
break;
}
else {
count+=minOfPack;
break;
}
}
}
bw.write(count+"");
}
bw.flush();
}
}