Dalam masalah ini, kita mendapat susunan res[] bersaiz N. Tugas kami adalah untuk mencari tatasusunan awal daripada tatasusunan yang diberikan selepas pertanyaan jumlah julat.
Kita perlu mencari tatasusunan permulaan yang mana tatasusunan rel[] akan dikembalikan apabila melaksanakan pertanyaan [s, e, val].
Setiap pertanyaan [s, e, val] diselesaikan sebagai
s -> indeks mula
e -> indeks akhir
val -> kemas kini setiap elemen dari s hingga e untuk ditambahkan pada nilai tatasusunan.
Mari kita ambil contoh untuk memahami masalah ini, terjemahanInput : rel[] = {7, 4, 8} Query[][] = {{1, 2, 1}, {0, 1, 3}} Output : {4, 0, 7}
Penerangan −
ialah:Penjelasan −
initialArray = {4, 0, 7}; query = {1, 2, 1}; finalArray = {4, 1, 8} initialArray = {4, 1, 8}; query = {0, 1, 3}; finalArray = {7, 4, 8}
−
ialah: Penjelasan−
#include <iostream> using namespace std; void calcInitialArrayQueries(int arr[], int n, int query[][3], int q) { for (int i = 0; i < q; i++) { for (int j = query[i][0];j <= query[i][1]; j++) { arr[j] = arr[j] - query[i][2]; } } for (int i = 0; i < n; i++) cout<<arr[i]<<" "; } int main() { int arr[] = { 5, 1, 8, 2, 9}; int n = sizeof(arr) / sizeof(arr[0]); int query[][3] = { {0, 2, -2}, {1, 4, 3}}; int q = sizeof(query) / sizeof(query[0]); cout<<"Initial array : "; calcInitialArrayQueries(arr, n, query, q); return 0; }
Initial array : 7 0 7 -1 6
Atas ialah kandungan terperinci Cari tatasusunan awal daripada tatasusunan yang diberikan selepas pertanyaan jumlah julat dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!