Gasoline Stations
Portale di allenamentoAfter many days of uninterrupted studying, William needs to take a break: a romantic trip with his girlfriend from Milan to Pordenone, to visit the famous Saint Valentine Park!
Soluzione corretta al 100%:
#include <stdlib.h>
#include <assert.h<
// constraints
#define MAXN 1000000
// input data
int N, i;
int P[MAXN];
int G[MAXN];
int main() {
// uncomment the following lines if you want to read/write from files
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
assert(1 == scanf("%d", &N));
for (i = 0; i < N; i++) assert(1 == scanf("%d", &P[i]));
for (i = 0; i < N; i++) assert(1 == scanf("%d", &G[i]));
// insert your code here
long long totalCost = 0; // Inizializziamo il costo totale a zero.
int minPrice = P[0]; // Inizializziamo il prezzo minimo alla prima stazione.
for (int i = 0; i < N; i++) {
// Aggiorniamo il minimo prezzo se il prezzo alla stazione attuale è minore.
if (P[i] < minPrice) {
minPrice = P[i];
}
// Aggiungiamo il costo del carburante necessario alla stazione attuale al costo totale.
totalCost += (long long)minPrice * G[i];
}
printf("%lld\n", totalCost); // print the result
return 0;
}
Spiegazione del programma:
In questo programma, leggiamo il numero di stazioni N, i prezzi per litro Pi e il carburante minimo richiesto Gi. Utilizziamo una variabile totalCost per tenere traccia del costo totale e una variabile minPrice per tenere traccia del prezzo minimo finora. Alla fine del ciclo, totalCost conterrà il costo minimo totale per il viaggio. Questo programma utilizza un ciclo per scorrere tutte le stazioni e calcola il costo minimo tenendo traccia del prezzo minimo e sommando il costo del carburante richiesto. Alla fine, stampiamo il costo totale.