Buongiorno a tutti, ho svolto l’esercizio ois_biglietti, ma nella verifica mi da come corretto solo il primo subtask, assegnandomi 0 agli altri, ho provato col compilatore a verificare le condizioni di tutti i task e il codice funziona correttamente. Come devo fare per far si che verifichi anche tutti gli altri subtask? Grazie.
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <assert.h>
using namespace std;
int compra(int N, int M, int A, int B) {
int costoA=0, costoB=0, corseR;
corseR=N-(M*floor(N/M));
if((B/M)<A){
costoB=floor(N/M)*B;
if(B<A)
costoB+=(B*ceil((double)corseR/M));
else
costoA=corseR*A;
}
else
costoA=N*A;
return costoA+costoB;
}
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;
}