Problema con Disk Failure 2

Ciao a tutti, come da titolo sto tentando il facile problema Disk Failure 2 solo che non comprendo perché la mia soluzione non funziona. Qui posto il mio codice in C++, grazie a tutti per l’aiuto (prima c’era A[i]=0 nel codice perché stavo testando)

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main() {
//  uncomment the following lines if you want to read/write from files
//  ifstream cin("input.txt");
//  ofstream cout("output.txt");

    int N, T;
    cin >> N >> T;
    bool possibile=false;
    vector<int> A(N), B(N);
    int i;
    for (i=0; i < N; i++) {
        cin >> A[i] >> B[i];
    }
    for(i=0; i<N; i++){
        if(24-B[i]+A[i+1]>=T){
            possibile = true;
            break;
        }
    }

    cout << ((possibile) ? i : -1)<<endl; // print the result
    
    return 0;
}

Edit, spiego il codice: dopo aver dato l’input di tutto, finché i è minore del numero di giorni se il tempo rimanente nel giorno i sommato al tempo che si ha nel giorno dopo prima che inizi il contest è maggiore o uguale al tempo che ci vuole per riparare i dischi allora il bool è true e manda in output i sennò se non trova nessun giorno manda in output -1

Il problema è legato alla lettura dei dati dai vettori, stai attento perché accedi ad alcune posizioni inesistenti.

1 Mi Piace

Vero, ho modificato mettendo i<N-1 nel for e ora dà tutto corretto, grazie!

1 Mi Piace