Problema:ois_biglietti

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;
}

Quando sottoponi togli il main?

no, il file che ho sottoposto è lo stesso che ho caricato qui.

Il problema ti richiede di sottoporre un file che contenga solo la funziona “compra”

va bene proverò, grazie.

ho provato, se non includo il main mi dà compilazione fallita

Il problema dice che devi implementare la funzione compra() solo se scegli di utilizzare il template (che ha già il main con la lettura/scrittura dell’I/O), ma comunque devi sottoporre tutto.

infatti è quello che ho fatto, ho utilizzato il template