#include <stdio.h> int s[10]={0}; int b[10]={0}; int min=1000000000; void min_search(int n); int re(int n, int a, int now, int s_sum, int b_sum, int c); int main(void) { int n, i; scanf( "%d", &n); for(i=0; i<n; i++) { scanf(" %d %d", &s[i], &b[i]); } min_search(n); printf("%d", min); return 0; } void min_search(int n) { int i; for(i=1; i<=n; i++) //사용할 재료의 개수 { re(n, i, -1, 1, 0, 0); } } int re(int n, int a, int now, int s_sum, int b_sum, int c) //각 개수만큼 재료 사용 경우의 수 모두 구해 최소값 찾아내기 { if(a<=c) { int sum=s_sum-b_sum; //printf("s_sum=%d b_sum=%d \n", s_sum, b_sum); if(sum<0) sum*=-1; if(sum<min) min=sum; return 0; } int i; for(i=now+1; i<n; i++) { re(n, a, i, s_sum*s[i], b_sum+b[i], c+1); } return 0; }
2018.06.02 12:20
정올 - 실전대비 - PERKET(1127)
조회 수 169 추천 수 0 댓글 0