#include <iostream>
using namespace std;
void inc(int *v, int a, int b, int x) {
int i = a - 1;
while((b - i) % 4) {
v[i] += x;
i++;
}
for (; i < b; i += 4) {
v[i] += x;
v[i + 1] += x;
v[i + 2] += x;
v[i + 3] += x;
}
}
void set(int *v, int a, int b, int x) {
int i = a - 1;
while((b - i) % 4) {
v[i] = x;
i++;
}
for (; i < b; i += 4) {
v[i] = x;
v[i + 1] = x;
v[i + 2] = x;
v[i + 3] = x;
}
}
void sum(int *v) {
int a, b;
cin >> a >> b;
int i = a - 1;
long int t0 = 0;
long int t1 = 0;
long int t2 = 0;
long int t3 = 0;
while((b - i) % 4) {
t0 += v[i];
i++;
}
for (; i < b; i += 4) {
t0 += v[i + 0];
t1 += v[i + 1];
t2 += v[i + 2];
t3 += v[i + 3];
}
cout << (t0 + t1 + t2 + t3) << endl;
}
int main() {
std::ios::sync_with_stdio(true);
int n;
cin >> n;
int *v = new int[n]; // Values
for (int i = 0; i < n; i++) cin >> v[i];
int q;
cin >> q;
int *qs = new int[4*q]; // Values
int j = 0;
for(int i = 0; i < q; i++) {
int o;
cin >> o;
if (o == 3) {
for (int qi = j; qi < i; qi++) {
int a = qs[4*qi + 1];
int b = qs[4*qi + 2];
int x = qs[4*qi + 3];
if (qs[4*qi] == 1)
inc(v, a, b, x);
else
set(v, a, b, x);
}
j = i + 1;
sum(v);
} else {
qs[4*i + 0] = o;
cin >> qs[4*i + 1];
cin >> qs[4*i + 2];
cin >> qs[4*i + 3];
}
}
return 0;
}