#include <bits/stdc++.h>
using namespace std;
int compra(int N, int M, int A, int B) {
int sol;
if(N<=M){
if(A*N<B)
sol=A*N;
else
sol=B;
}else{
int u=N/M;
if(M*u<N){
if(B*u+B<=A*N)
sol=B*u+B;
else
sol=B*u+(A*(N-M));
}else{
sol=B*u;
}
}
sol = min(A*N, sol);
return sol;
}
int main() {
FILE *fr, *fw;
int N, M, A, B;
fr = fopen("input.txt", "r");
fw = fopen("output.txt", "w");
assert(4 == fscanf(fr, "%d%d%d%d", &N, &M, &A, &B));
fprintf(fw, "%d\n", compra(N, M, A, B));
fclose(fr);
fclose(fw);
return 0;
}
tutto corretto tranne le subtask 014 e 021, tra tutto il forum, tutti gli esempi che davano i “risolutori”, il mio codice li fa correttamente, se avete idee mi salvate la sanità mentale