#include<bits/stdc++.h>
using namespace std;
/*#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
/*template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
*/ typedef long long ll;
typedef long double ld;
typedef pair< ll,ll> pl;
typedef pair< int ,int > pii;
#define LOCAL 0
#define dbg(x) cerr << #x << " is " << x << " "
#define gll(x) scanf("%lld",&x)
#define gll2(x,y) scanf("%lld%lld",&x,&y)
#define gll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&y)
#define gllarr(arr,n) f(i,n) gll(arr[i]);
#define sz(x) ((int)x.size())
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define f(i,n) for(int i=0;i<n;i++)
#define fr(i,n) for(int i=n-1;i>=0;i--)
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define repr(i,a,b) for(int i=a;i>=b;i--)
const ll mod = 1000000007 ;
const ll inf = ( ll) 1e16 ;
const ld eps = 1e-12 ;
const ll N = ( int ) 1e5 + 5 ;
const ll LOGN = 19 ;
const ld PI = 3.14159265358979323846 ;
ll mul( ll a, ll b, ll m = mod) { return ( ll) ( a * b) % m; }
ll add( ll a, ll b, ll m = mod) { a + = b; if ( a >= m) a - = m; if ( a < 0 ) a + = m; return a; }
ll power( ll a, ll b, ll m = mod) { if ( b == 0 ) return 1 ; if ( b == 1 ) return ( a % m) ; ll x = power( a, b / 2 , m) ; x = mul( x, x, m) ; if ( b % 2 ) x = mul( x, a, m) ; return x; }
int main( )
{
ios_base:: sync_with_stdio ( false ) ;
cin .tie ( NULL ) ;
if ( LOCAL)
{
//freopen("C:\\Users\\Dishant\\Desktop\\Collection-DEV c++\\input.txt","r",stdin);
//freopen("C:\\Users\\Dishant\\Desktop\\Collection-DEV c++\\output.txt","w",stdout);
}
ll n;
cin >> n;
ll a[ n] ;
f( i,n)
cin >> a[ i] ;
ll pre[ n+ 1 ] ;
vector< ll> add1;
//add.pb(0);
pre[ 0 ] = 0 ;
rep( i,1 ,n)
pre[ i] = pre[ i- 1 ] + a[ i- 1 ] ;
//f(i,n+1)
// cout<<pre[i]<<" ";
int q;
cin >> q;
while ( q-- )
{
int type;
cin >> type;
if ( type== 1 )
{
int l,r;
cin >> l>> r;
if ( add1.size ( ) == 0 )
{
cout << pre[ r] - pre[ l- 1 ] << endl;
}
else
{
vector< long long int > add;
ll ans = 0ll;
if ( r> add1.size ( ) && l<= add1.size ( ) )
{
add = add1;
add.pb ( 0 ) ;
reverse( add.begin ( ) ,add.end ( ) ) ;
rep( i,l,add.size ( ) )
ans + = add[ i] ;
int nr = r- add1.size ( ) ;
ans + = pre[ nr] ;
}
else if ( l<= add1.size ( ) && r<= add1.size ( ) )
{
add = add1;
add.pb ( 0 ) ;
reverse( add.begin ( ) ,add.end ( ) ) ;
rep( i,l,r)
ans + = add[ i] ;
}
else if ( l> add1.size ( ) )
{
l = l- add1.size ( ) ;
r = r- add1.size ( ) ;
ans + = pre[ r] - pre[ l- 1 ] ;
}
cout << ans<< endl;
}
}
else {
ll u;
cin >> u;
add1.pb ( u) ;
}
}
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLyojaW5jbHVkZTxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGU8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7Ci8qdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZTxULCBudWxsX3R5cGUsIGxlc3M8VD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+OwoqL3R5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwogCiNkZWZpbmUgTE9DQUwgMAojZGVmaW5lIGRiZyh4KSBjZXJyIDw8ICN4IDw8ICIgaXMgIiA8PCB4IDw8ICIgIgojZGVmaW5lIGdsbCh4KSBzY2FuZigiJWxsZCIsJngpCiNkZWZpbmUgZ2xsMih4LHkpIHNjYW5mKCIlbGxkJWxsZCIsJngsJnkpCiNkZWZpbmUgZ2xsMyh4LHkseikgc2NhbmYoIiVsbGQlbGxkJWxsZCIsJngsJnksJnkpCiNkZWZpbmUgZ2xsYXJyKGFycixuKSBmKGksbikgZ2xsKGFycltpXSk7CiNkZWZpbmUgc3ooeCkgKChpbnQpeC5zaXplKCkpCiNkZWZpbmUgcyh4KSBzb3J0KHguYmVnaW4oKSx4LmVuZCgpKQojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIHJzKHYpIHsgcyh2KSA7IHIodikgOyB9CiNkZWZpbmUgcih2KSB7cmV2ZXJzZShhbGwodikpO30KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBmKGksbikgZm9yKGludCBpPTA7aTxuO2krKykKI2RlZmluZSBmcihpLG4pIGZvcihpbnQgaT1uLTE7aT49MDtpLS0pCiNkZWZpbmUgcmVwKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSByZXByKGksYSxiKSBmb3IoaW50IGk9YTtpPj1iO2ktLSkKIApjb25zdCBsbCBtb2QgPSAxMDAwMDAwMDA3Owpjb25zdCBsbCBpbmYgPSAobGwpMWUxNjsKY29uc3QgbGQgZXBzID0gMWUtMTI7CmNvbnN0IGxsIE4gPSAoaW50KTFlNSs1Owpjb25zdCBsbCBMT0dOID0gMTk7CmNvbnN0IGxkIFBJID0gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjsKIApsbCBtdWwobGwgYSwgbGwgYiwgbGwgbSA9IG1vZCkgeyByZXR1cm4gKGxsKShhICogYikgJSBtO30KbGwgYWRkKGxsIGEsIGxsIGIsIGxsIG0gPSBtb2QpIHsgYSArPSBiOyBpZihhID49IG0pIGEgLT0gbTsgaWYoYSA8IDApIGEgKz0gbTsgcmV0dXJuIGE7fQpsbCBwb3dlcihsbCBhLCBsbCBiLCBsbCBtID0gbW9kKSB7IGlmKGIgPT0gMCkgcmV0dXJuIDE7IGlmKGIgPT0gMSkgcmV0dXJuIChhICUgbSk7IGxsIHggPSBwb3dlcihhLCBiIC8gMiwgbSk7IHggPSBtdWwoeCwgeCwgbSk7IGlmKGIgJSAyKSB4ID0gbXVsKHgsIGEsIG0pOyByZXR1cm4geDt9CiAKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBpZihMT0NBTCkKICAgIHsKICAgICAgICAvL2ZyZW9wZW4oIkM6XFxVc2Vyc1xcRGlzaGFudFxcRGVza3RvcFxcQ29sbGVjdGlvbi1ERVYgYysrXFxpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICAgICAgLy9mcmVvcGVuKCJDOlxcVXNlcnNcXERpc2hhbnRcXERlc2t0b3BcXENvbGxlY3Rpb24tREVWIGMrK1xcb3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBsbCBuOwogICAgY2luPj5uOwogICAgbGwgYVtuXTsKICAgIGYoaSxuKQogICAgICAgIGNpbj4+YVtpXTsKICAgIGxsIHByZVtuKzFdOwogICAgdmVjdG9yPGxsPiBhZGQxOwogICAgLy9hZGQucGIoMCk7CiAgICBwcmVbMF0gPSAwOwogICAgcmVwKGksMSxuKQogICAgICAgIHByZVtpXSA9IHByZVtpLTFdICsgYVtpLTFdOwogICAgLy9mKGksbisxKQogICAgICAvLyAgY291dDw8cHJlW2ldPDwiICI7CiAgICBpbnQgcTsKICAgIGNpbj4+cTsKICAgIHdoaWxlKHEtLSkKICAgIHsKICAgICAgICBpbnQgdHlwZTsKICAgICAgICBjaW4+PnR5cGU7CiAgICAgICAgaWYodHlwZT09MSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBsLHI7CiAgICAgICAgICAgIGNpbj4+bD4+cjsKICAgICAgICAgICAgaWYoYWRkMS5zaXplKCk9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHByZVtyXS1wcmVbbC0xXTw8ZW5kbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZlY3Rvcjxsb25nIGxvbmcgaW50PiBhZGQ7CiAgICAgICAgICAgICAgICBsbCBhbnMgPSAwbGw7CiAgICAgICAgICAgICAgICBpZihyPmFkZDEuc2l6ZSgpICYmIGw8PWFkZDEuc2l6ZSgpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFkZCA9IGFkZDE7CiAgICAgICAgICAgICAgICAgICAgYWRkLnBiKDApOwogICAgICAgICAgICAgICAgICAgIHJldmVyc2UoYWRkLmJlZ2luKCksYWRkLmVuZCgpKTsKICAgICAgICAgICAgICAgICAgICByZXAoaSxsLGFkZC5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIGFucyArPSBhZGRbaV07CiAgICAgICAgICAgICAgICAgICAgaW50IG5yID0gci1hZGQxLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICBhbnMgKz0gcHJlW25yXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYobDw9YWRkMS5zaXplKCkgJiYgcjw9YWRkMS5zaXplKCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYWRkID0gYWRkMTsKICAgICAgICAgICAgICAgICAgICBhZGQucGIoMCk7CiAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZShhZGQuYmVnaW4oKSxhZGQuZW5kKCkpOwogICAgICAgICAgICAgICAgICAgIHJlcChpLGwscikKICAgICAgICAgICAgICAgICAgICAgICAgYW5zICs9IGFkZFtpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYobD5hZGQxLnNpemUoKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBsID0gbC1hZGQxLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICByID0gci1hZGQxLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICBhbnMgKz0gcHJlW3JdLXByZVtsLTFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY291dDw8YW5zPDxlbmRsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBsbCB1OwogICAgICAgICAgICBjaW4+PnU7CiAgICAgICAgICAgIGFkZDEucGIodSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0g