Il vostro programma e' chiamato a gestire un array A[1..n] di interi, inizialmente tutti nulli, ed in seguito aggiornato (update) ed interrogato (query) come indicato nel file input.txt input.txt 10 8 4 7 1 2 -1 3 0 5 8 -2 3 0 1 4 0 3 3 0 1 10 Nella sua prima riga il file specifica che l'array prevede n=10 posizioni (indicizzate da 1 a 10) e che seguiranno altre 8 righe a specificare 8 richieste da espletare sequenzialmente nell'ordine dato. riga 2: 4 7 <-- prima richiesta: incrementare di 4 l'intero in A[7] riga 3: 1 2 <-- seconda richiesta: incrementare di 1 l'intero in A[2] riga 4: -1 3 <-- chiede di decrementare di 1 l'intero in A[3] riga 5: 0 5 8 <-- chiede di restituire A[5]+A[6]+A[7]+A[8] riga 6: -2 3 <-- chiede di decrementare di 2 l'intero in A[3] riga 7: 0 1 4 <-- chiede di restituire A[1]+A[2]+A[3]+A[4] riga 8: 0 3 3 <-- chiede di restituire A[3] riga 9: 0 1 10 <-- restituire A[1]+A[2]+A[3]+A[4]+A[5]+A[6]+A[7]+A[8]+A[9]+A[10] Risolviamo correttamente questa istanza se scriviamo su directory corrente il file: output.txt 4 -2 -3 2 Assunzioni: - tempo limite = 1 secondo (user time); - il primo numero di ogni riga (tranne la prima) e' di una sola cifra: + ove questo numero sia 0, esso istanzia una query, e sulla stessa riga seguono poi due numeri a e b con 1 <= a <= b <= n a specificare l'intervallo della query; + altrimenti, esso istanzia una update, ed e' seguito da un indice pos con 1 <= pos <= n: si richiede che il numero che ha istanziato la update venga sommato algebricamente ad A[pos]; - n <= 100000, m <= 100000, dove m e' il numero di richieste; - in almeno 3 istanze: n <= 1000, m <= 1000; - in almeno 7 istanze: vi sono al piu' 5 query immediatamente precedute da una update (ossia al piu' 6 fasi di update; al piu' 6 blocchi di update consecutive). - in almeno 12 istanze: m <= 10000.