누가 도움좀...

아래는 내 생각임.

a개마다 b 원에 팔거나 c개마다 d원에 파니까

a*c개를 사는 비용은 min(c*b,a*d)임. 


n/(a*c) * (a*c) 개 만큼은 a*c개씩 묶어서 삼. 

남은 n%(a*c)개는 a개 묶음을 몇 개 사는지 하나하나 iterate 하는데 a*c / a <= c 이므로 시간복잡도는 O(C)임. 


계속틀린다....어떡해 


#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll a,b,c,d;

ll solve(ll n){

ll flower = n/(a*c);

n%=(a*c);

ll add = flower*min(c*b,a*d);

ll ans = INT64_MAX;

for(ll i=0; i<=n/a+10; i++){

ll fir = i*a;

ll sec = max((ll)0,n-fir);

sec = sec/c+(sec%c?1:0);

ans = min(ans,i*b + sec*d);

}

return add+ans;

}

int main(){

ll n; cin>>n;

cin>>a>>b>>c>>d;

cout<<solve(n);

}