Sizin n uzunluğunda a massiviniz var. Sizə iki növ q sorğu verilir:
a massivindəki p-ci elementi v ilə əvəz edin;
a massivindəki p-ci elementi tapın.
Sizdən üç funksiyanı həyata keçirmək tələb olunur:
void init(integer n, array of integers a)
n — massiv uzunluğu;
a — tam ədədlərdən ibarət massiv;
bu funksiya yalnız bir dəfə, ilk çağırışda istifadə olunur. Bu, sizə massiv ölçüsünü və özünü bildirmək üçün lazımdır. Yalnız bu funksiyanın çağırılmasından sonra digər iki funksiya çağırılacaq.
void upd(integer p, integer v)
p — mövqe;
v — yeni ədəd;
bu funksiya birinci növ sorğu verildikdə çağırılır.
integer ask(integer p)
p — mövqe;
bu funksiya ikinci növ sorğu verildikdə çağırılır;
funksiya sorğuya cavab olaraq tam ədəd qaytarmalıdır.
Birinci sətir iki tam ədəd n və m (1 ⩽ n ⩽ 100, 1 ⩽ m ⩽ 1 000) — massiv uzunluğu və sorğuların sayını ehtiva edir.
İkinci sətir n tam ədəd a[1], a[2], ..., a[n] (1 ⩽ a[i] ⩽ 100) — massiv ədədlərini ehtiva edir. Növbəti m sətirin hər biri bir sorğunu təsvir edir və aşağıdakı formatlardan birinə malikdir:
«1 p v» (1 ⩽ p ⩽ n, 1 ⩽ v ⩽ 100) — mövqe və yeni ədəd.
«2 p» (1 ⩽ p ⩽ n) — mövqe.
Hər ikinci növ sorğudan sonra bir tam ədəd — cavab çıxarılacaq.
(20 bal) n ⩽ 10; m ⩽ 100; a[i], v[i] ⩽ 20;
(20 bal) n ⩽ 30; m ⩽ 300; a[i], v[i] ⩽ 30;
(20 bal) n ⩽ 50; m ⩽ 500; a[i], v[i] ⩽ 50;
(20 bal) n ⩽ 75; m ⩽ 750; a[i], v[i] ⩽ 75;
(20 bal) əlavə məhdudiyyətlər olmadan.
Nümunə 1