Le operazioni eseguite su una scheda grafica (GPU) possono essere altamente parallelizzate. Questo significa che, se è possibile svolgere lo stesso tipo di operazione su molti numeri allo stesso tempo, è possibile ottenere risultati più velocemente rispetto a eseguire operazioni diverse in sequenza. Il team sta testando il proprio codice e ti chiede di scrivere un programma che verifichi l’operazione di somma di numerosi numeri effettuata modulo un altro numero.
Dati due elenchi di interi e , ti viene richiesto di calcolare la somma di ogni coppia e modulo :
Tieni presente che il modo in cui viene implementata l’operazione di modulo può variare tra diversi linguaggi di programmazione. In Python, il risultato è sempre non negativo. Tuttavia, in altri linguaggi come C++, il risultato di un’operazione di modulo può essere negativo (ad esempio, -3 % 2 → -1). Un trucco molto diffuso per risolvere il problema è aggiungere m al risultato se è negativo, usando una semplice istruzione if. Un approccio più generico consiste nell’aggiungere m e poi applicare nuovamente il modulo: ((a % m) + m) % m. In questo modo si garantisce che il risultato sia sempre non negativo.
Input
La prima riga dell’input contiene un singolo intero n (1 ≤ n ≤ 100 000), che rappresenta il numero di elementi.
La seconda riga contiene n interi separati da spazio ( ≤ ≤ ).
La riga successiva contiene n interi separati da spazio ( ≤ ≤ ).
L’ultima riga contiene n interi separati da spazio (1 ≤ ≤ ).
Output
Il programma deve stampare n numeri separati da spazio, corrispondenti a .