#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int MX=200003;
#define endl "\n"
#define FIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
ll tree[1010000];
ll arr[MX];
ll marked[1010000];
ll n,var;
#define inf 9223372036854775807
void build(ll node, ll low, ll high){
if(low == high){
tree[node] = arr[low];
return;
}
ll mid = (low+high)/2;
build(2*node,low,mid);
build(2*node+1,mid+1,high);
tree[node] = min(tree[2*node],tree[2*node+1]);
}
void update(ll node, ll low,ll high,ll l, ll r, ll val){
if(r<l) return;
if(marked[node]!=0){
tree[node] += marked[node];
if(low !=high){
marked[2*node] += marked[node];
marked[2*node+1] += marked[node];
}
marked[node] = 0;
}
if(low ==l && high == r){
tree[node]+= val;
if(low != high){
marked[2*node] += val;
marked[2*node+1] += val;
}
return;
}
ll mid = (low+high)/2;
update(2*node,low,mid,l,min(r,mid),val);
update(2*node+1,mid+1,high,max(mid+1,l),r,val);
tree[node] = min(tree[2*node],tree[2*node+1]);
}
ll query(ll node, ll low, ll high, ll l, ll r){
if(r<l) return inf;
if(marked[node]){
tree[node] += marked[node];
if(low !=high){
marked[2*node] += marked[node];
marked[2*node+1] += marked[node];
}
marked[node] = 0;
}
if(low == l && high == r){
return tree[node];
}
ll mid = (low+high)/2;
ll left = query(2*node,low,mid,l,min(r,mid));
ll right = query(2*node+1,mid+1,high,max(mid+1,l),r);
return min(left,right);
}
int main(){
FIO;
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
build(1,1,n);
ll q;
cin>>q;
ll cnt = 1;
while(q){
vector<int> v;
string str;
getline(cin, str);
stringstream ss(str);
// cout<<str<<endl;
while(ss >> var)
v.push_back(var);
if(v.size() == 0) continue;
// cout<<v.size()<<endl;
ll l = v[0] + 1;
ll r = v[1] + 1;
if(v.size() == 3){
// cout<<v[2]<<endl;
if(r<l){
update(1,1,n,l,n,v[2]);
update(1,1,n,1,r,v[2]);
}
else{
update(1,1,n,l,r,v[2]);
}
}
else{
if(r<l){
ll ans1 = query(1,1,n,l,n);
ll ans2 = query(1,1,n,1,r);
cout<<min(ans1,ans2)<<endl;
}
else{
cout<<query(1,1,n,l,r)<<endl;
}
}
cout<<"cnt = "<<cnt++<<endl;
for(int i=1;i<=7;i++){
cout<<i<<"="<<tree[i]<<" ";
}
cout<<endl;
for(int i=1;i<=7;i++){
cout<<i<<"="<<marked[i]<<" ";
}
cout<<endl;
q--;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE1YPTIwMDAwMzsKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBGSU8gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKbGwgdHJlZVsxMDEwMDAwXTsKbGwgYXJyW01YXTsKbGwgbWFya2VkWzEwMTAwMDBdOwpsbCBuLHZhcjsKI2RlZmluZSBpbmYgOTIyMzM3MjAzNjg1NDc3NTgwNwoKdm9pZCBidWlsZChsbCBub2RlLCBsbCBsb3csIGxsIGhpZ2gpewoJaWYobG93ID09IGhpZ2gpewoJCXRyZWVbbm9kZV0gPSBhcnJbbG93XTsKCQlyZXR1cm47Cgl9CgoJbGwgbWlkID0gKGxvdytoaWdoKS8yOyAKCWJ1aWxkKDIqbm9kZSxsb3csbWlkKTsKCWJ1aWxkKDIqbm9kZSsxLG1pZCsxLGhpZ2gpOwoKCXRyZWVbbm9kZV0gPSBtaW4odHJlZVsyKm5vZGVdLHRyZWVbMipub2RlKzFdKTsKCn0KCnZvaWQgdXBkYXRlKGxsIG5vZGUsIGxsIGxvdyxsbCBoaWdoLGxsIGwsIGxsIHIsIGxsIHZhbCl7CgoKCWlmKHI8bCkgcmV0dXJuOwoKCWlmKG1hcmtlZFtub2RlXSE9MCl7CgkJdHJlZVtub2RlXSArPSBtYXJrZWRbbm9kZV07CgkJaWYobG93ICE9aGlnaCl7CgkJCW1hcmtlZFsyKm5vZGVdICs9IG1hcmtlZFtub2RlXTsKCQkJbWFya2VkWzIqbm9kZSsxXSArPSBtYXJrZWRbbm9kZV07CQoJCX0KCQkJCgkJbWFya2VkW25vZGVdID0gMDsKCX0KCglpZihsb3cgPT1sICYmIGhpZ2ggPT0gcil7CgkJdHJlZVtub2RlXSs9IHZhbDsKCQlpZihsb3cgIT0gaGlnaCl7CgkJCW1hcmtlZFsyKm5vZGVdICs9IHZhbDsKCQkJbWFya2VkWzIqbm9kZSsxXSArPSB2YWw7CQoJCX0JCgkJcmV0dXJuOwoJfQoKCglsbCBtaWQgPSAobG93K2hpZ2gpLzI7CgoJdXBkYXRlKDIqbm9kZSxsb3csbWlkLGwsbWluKHIsbWlkKSx2YWwpOwoJdXBkYXRlKDIqbm9kZSsxLG1pZCsxLGhpZ2gsbWF4KG1pZCsxLGwpLHIsdmFsKTsKCgl0cmVlW25vZGVdID0gbWluKHRyZWVbMipub2RlXSx0cmVlWzIqbm9kZSsxXSk7Cn0KCmxsIHF1ZXJ5KGxsIG5vZGUsIGxsIGxvdywgbGwgaGlnaCwgbGwgbCwgbGwgcil7CgoKCWlmKHI8bCkgcmV0dXJuIGluZjsKCglpZihtYXJrZWRbbm9kZV0pewoJCXRyZWVbbm9kZV0gKz0gbWFya2VkW25vZGVdOwoJCWlmKGxvdyAhPWhpZ2gpewoJCQltYXJrZWRbMipub2RlXSArPSBtYXJrZWRbbm9kZV07CgkJCW1hcmtlZFsyKm5vZGUrMV0gKz0gbWFya2VkW25vZGVdOwkKCQl9CQoJCW1hcmtlZFtub2RlXSA9IDA7Cgl9CgoJCglpZihsb3cgPT0gbCAmJiBoaWdoID09IHIpewoJCXJldHVybiB0cmVlW25vZGVdOwoJfQoKCWxsIG1pZCA9IChsb3craGlnaCkvMjsKCglsbCBsZWZ0ID0gcXVlcnkoMipub2RlLGxvdyxtaWQsbCxtaW4ocixtaWQpKTsKCWxsIHJpZ2h0ID0gcXVlcnkoMipub2RlKzEsbWlkKzEsaGlnaCxtYXgobWlkKzEsbCkscik7CgoJcmV0dXJuIG1pbihsZWZ0LHJpZ2h0KTsKCn0KCgppbnQgbWFpbigpewoJRklPOwoJLy8gZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CgkvLyBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwoKICAgCWNpbj4+bjsKICAgCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgCQljaW4+PmFycltpXTsKICAgCX0KCiAgIAlidWlsZCgxLDEsbik7CgogICAJbGwgcTsKICAgCWNpbj4+cTsKICAgCWxsIGNudCA9IDE7CiAgIAl3aGlsZShxKXsKICAgCQl2ZWN0b3I8aW50PiB2OwogICAJCXN0cmluZyBzdHI7CiAgIAkJZ2V0bGluZShjaW4sIHN0cik7CiAgIAkJc3RyaW5nc3RyZWFtIHNzKHN0cik7CgkJCgkJLy8gY291dDw8c3RyPDxlbmRsOyAgIAkJCiAgIAkJd2hpbGUoc3MgPj4gdmFyKQogICAJCQl2LnB1c2hfYmFjayh2YXIpOwoKICAgCQlpZih2LnNpemUoKSA9PSAwKSBjb250aW51ZTsKICAgCQkvLyBjb3V0PDx2LnNpemUoKTw8ZW5kbDsKCQkKCQlsbCBsID0gdlswXSArIDE7CgkJbGwgciA9IHZbMV0gKyAxOwoKCQlpZih2LnNpemUoKSA9PSAzKXsKCQkJCgkJCS8vIGNvdXQ8PHZbMl08PGVuZGw7CgkJCWlmKHI8bCl7CgkJCQl1cGRhdGUoMSwxLG4sbCxuLHZbMl0pOwoJCQkJdXBkYXRlKDEsMSxuLDEscix2WzJdKTsKCQkJfQoJCQllbHNlewoJCQkJdXBkYXRlKDEsMSxuLGwscix2WzJdKTsJCgkJCX0gCgoJCQkKCQl9CgkJZWxzZXsKCgkJCWlmKHI8bCl7CgkJCQlsbCBhbnMxID0gcXVlcnkoMSwxLG4sbCxuKTsKCQkJCWxsIGFuczIgPSBxdWVyeSgxLDEsbiwxLHIpOwoJCQkJY291dDw8bWluKGFuczEsYW5zMik8PGVuZGw7CgkJCX0KCQkJZWxzZXsKCQkJCWNvdXQ8PHF1ZXJ5KDEsMSxuLGwscik8PGVuZGw7CgkJCX0KCgkJfQoKCQljb3V0PDwiY250ID0gIjw8Y250Kys8PGVuZGw7CgkJZm9yKGludCBpPTE7aTw9NztpKyspewoJCQljb3V0PDxpPDwiPSI8PHRyZWVbaV08PCIgIjsKCQl9CgkJY291dDw8ZW5kbDsKCQlmb3IoaW50IGk9MTtpPD03O2krKyl7CgkJCWNvdXQ8PGk8PCI9Ijw8bWFya2VkW2ldPDwiICI7CQoJCX0KCQljb3V0PDxlbmRsOwoJCXEtLTsKICAgCX0KCgogICAgcmV0dXJuIDA7Cn0=