[CodeUp] #4816-전자레인지(2019 정올1차 대비)

chrmqgozj·2022년 2월 4일
0

CodeUp

목록 보기
42/48
#include <iostream>
#include <vector>
using namespace std;

vector<int> v = {300,60,10};
vector<int> count = {0,0,0};
int ans = 0;

void func(int sum, int t, int cnt,int index,vector<int> temp){
	
	if(sum>t){
		return;
	}
	
	if(index == 3){
		if(ans!=0){
			if(ans > cnt && sum == t){
				ans = cnt;
				for(int i=0;i<3;i++){
					count[i] = temp[i];
				}
			}
		}
		else{
			if(sum==t){
				ans = cnt;
				for(int i=0;i<3;i++){
					count[i] = temp[i];
				}
			}
		}
		return;
	}
	
	for(int i=(t-sum)/v[index];i>=0;i--){
		temp[index] = i;
		func(sum+v[index]*i,t,cnt+i,index+1,temp);
	}
	return;
}

int main(){
	int t;
	cin >> t;
	
	func(0,t,0,0,vector<int>(3,0));
	
	if(ans!=0){
		for(int i=0;i<3;i++){
			cout << count[i] << " ";
		}
	}
	else{
		cout << -1;
	}
	
}

0개의 댓글

관련 채용 정보