Treatment Planning

Salve a tutti, sto cercando di risolvere il problema Treatment Planning, ormai da qualche giorno continuo ad ottenere 90/100, tutti i testcase sono corretti tranne il primo della sesta subtask (ovvero il numero 20). Questo testcase mi da questo errore:Execution killed with signal 11 (could be triggered by violating memory limits)
La memoria non supera i limiti consentiti e nel mio algoritmo gli array non superano la lunghezza di 500 000 elementi. Inoltre, è impossibile che ci siano dei casi in cui cerco di accedere a celle di memoria

Volevo sapere se sono l’unico a riscontrare questo problema o se è effettivamente un problema del testcase

*è impossibile che ci siano dei casi in cui cerco di accedere a celle di memoria non autorizzate

Evidentemente se ricevi “Execution killed with signal 11” è molto probabile che sia uno dei due errori da te indicati quindi potresti fare comunque il tentativo di mettere qui il codice :slight_smile:

In che senso è impossibile? :confused: di solito il problema è quello (gli accessi fuori dagli array), prova a ricontrollare…

Nota che c’è la variabile T nel testo che può superare quel valore

Ok ho trovato l’errore, avevo dichiarato due array da 500 000 elementi al posto di 500 000 000… :expressionless:
Ho cambiato la dimensione degli array, ma mi fallisce la compilazione… probabilmente perche’ occupano troppa memoria.
Allora ho dichiarato dinamicamente due array, uno di dimensione T/2 e l’altro di dimensione T-T/2. Il risultato? 90/100, sempre per quel testcase con lo stesso errore! :sob:

Un array di int (4 byte solitamente) per 500 milioni sono circa 2 GB di memoria, adesso il problema è sicuramente questo, prova a pensare ad un modo migliore di salvarli (una struttura dati per esempio).

if (T<500000000) {
    Tempo = new int[T / 2];
    Tempo2 = new int[T - T / 2];
}

Facendo cosi’ mi dice l’output non e’ corretto, quindi hai ragione… grazie a tutti per l’aiuto!!:+1: