pengantar
Pertimbangkan dua array integer yang tidak kosong, misalkan A = [0 3 2 2 8 4] dan B = [7 8 7 2] . Untuk melakukan penambahan pelurusan pada mereka, kami melakukan hal berikut:
Ulangi setiap larik cukup kali untuk memiliki panjang total lcm (panjang (A), panjang (B)) . Di sini lcm merupakan kelipatan umum terendah.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2]
Lakukan penambahan elemen-bijaksana pada array berulang, dan potong hasilnya di setiap posisi di mana ada pemotongan di salah satu dari mereka.
A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][ 7 8 7 2][7 8 7 2] -> [7 11 9 4][15 12][7 5][9 10 15 6]
Array array ini adalah hasil Anda.
Tugas
Input Anda adalah dua array integer yang tidak kosong, dan output Anda akan menjadi hasil penambahan alignment, seperti yang didefinisikan di atas. Input dan output dapat dalam format yang masuk akal. Anda tidak perlu khawatir tentang integer overflow saat melakukan penambahan.
Aturan dan penilaian
Anda dapat menulis program atau fungsi lengkap. Hitungan byte terendah menang.
Uji kasus
[1] [4] -> [[5]]
[1,2,-3,-4] [15] -> [[16],[17],[12],[11]]
[0,-4] [2,1,0,-3] -> [[2,-3],[0,-7]]
[0,3,2,2,8,4] [7,8,7,2] -> [[7,11,9,4],[15,12],[7,5],[9,10,15,6]]
[18,17,16] [-1,-2,-3,-4] -> [[17,15,13],[14],[16,14],[15,13],[15],[16,14,12]]
[18,17,16,15] [-1,-2,-3,-4] -> [[17,15,13,11]]
[1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7],[6,7,3,2],[7],[6,7,6,7,6],[7,3,2],[7,6],[7,6,7,6,7],[3,2],[7,6,7],[6,7,6,7,3],[2],[7,6,7,6],[7,6,7,3,2]]
[1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6],[7,3,2],[7,6,7],[6,7,6,7,3,2]]
[1,1,1,1,1,1,1] [6,5,6,5,6,5,6,2,1] -> [[7,6,7,6,7,6,7],[3,2],[7,6,7,6,7],[6,7,3,2],[7,6,7],[6,7,6,7,3,2],[7],[6,7,6,7,6,7,3],[2],[7,6,7,6,7,6],[7,3,2],[7,6,7,6],[7,6,7,3,2],[7,6],[7,6,7,6,7,3,2]]