Masala #0735

Xotira 16 MB Vaqt 1000 ms
14

Optimize

Quyidagi dastur yechimini chop eting!.
#include <iostream>
using namespace std;
int main(){
    int n;
    cin >> n;
    int *a = new int[n+1];
    for(int i = 1; i <= n; i ++) cin >> a[i];
    int q, t, id, m;
    cin >> q;
    for(int i = 0; i < q; i ++){
        cin >> t >> id;
        if(t == 0)
            cin >> a[id];
        else{
            m = 1;
            for(int j = 1; j <= n; j ++)
                if(id != j)
                    m = (1LL * m * a[j]) % 1000000007;
            cout << m << endl;
        }
    }
    return 0;
}


Kiruvchi ma'lumotlar:

Kirish faylining dastlabki satrida \(n (1 \le n \le 10^5)\) ning qiymati kiritiladi. Ikkinchi satrda \(n\) ta butun son \(a (0 \le a_i \le 10^9)\) massiv elementlari bo’sh joy bilan ajratilgan holda kiritiladi. Uchunchi satrda bitta butun son, \(q (1 \le q \le 10^5)\) soni kiritiladi. to’rtinchi qatordan boshlab \(q\) ta qatorda 2 xil turdagi so’rovdan biri kiritiladi. So’rovlar quyidagicha:
0 id \(a_{id}\) - 0 bilan boshlangan satrda \(id (1 \le id \le n)\) va \(a_{id} (0 \le a_{id} \le 10^9)\) kiritiladi.
1 id - 1 bilan boshlangan satrda faqat \(id (1 \le id \le n)\) kiritiladi.


Chiquvchi ma'lumotlar:

Kiritilgan qiymatlar uchun yuqoridagi dastur kodining natijasini chop eting.


Misollar
# input.txt output.txt
1
5 
1 2 3 4 5
3
1 3
0 2 4
1 4
40
60