Operationen auf einer Grafikkarte (GPU) lassen sich sehr gut parallelisieren. Wenn also derselbe Operationstyp auf viele Zahlen gleichzeitig angewendet werden kann, ist dies schneller, als verschiedenartige Operationen nacheinander durchzuführen. Das Team testet gerade seinen Code und bittet dich daher, ein Programm zu schreiben, das die Addition vieler Zahlen modulo einer anderen Zahl überprüft.
Angenommen, dir liegen zwei Listen von Ganzzahlen a1,a2,...,an und b1,b2,...,bn vor. Deine Aufgabe ist es, die Summe jedes Paares ai und bi modulo mi zu berechnen:
(ai+bi)modmi
Beachte, dass unterschiedliche Programmiersprachen den Modulo-Operator unterschiedlich umsetzen. Python stellt etwa sicher, dass das Ergebnis immer positiv ist, wohingegen Sprachen wie C++ auch ein negatives Resultat liefern können (-3 % 2 → -1). Ein häufiger Trick besteht darin, das Ergebnis mit der If-Bedingung um m zu erhöhen, falls es negativ ist. Eine allgemeinere Methode ist folgende: ((a % m) + m) % m. Damit wird garantiert, dass das Endergebnis immer positiv bleibt.
Eingabe
Die erste Zeile der Eingabe enthält eine einzelne ganze Zahl n (1 ≤ n ≤ 100 000), die die Anzahl der Elemente vorgibt.
Die zweite Zeile enthält n durch Leerzeichen getrennte ganze Zahlen a1,a2,...,an (−109≤ai≤109).
Die nächste Zeile enthält n durch Leerzeichen getrennte ganze Zahlen b1,b2,...,bn (−109≤bi≤109).
Die letzte Zeile enthält n durch Leerzeichen getrennte ganze Zahlen m1,m2,...,mn (1≤mi≤109).
Ausgabe
Das Programm soll n durch Leerzeichen getrennte ganze Zahlen ausgeben – (ai+bi)modmi.