//https://w...content-available-to-author-only...f.com/problems/MULTQ3/
#include <bits/stdc++.h>
#define lli long long int
#define gc() getchar_unlocked();
#define sc(a) scanf("%lld",&a);gc();
#define sc_(a,b) scanf("%lld%lld",&a,&b);gc();
#define pf(a) printf("%lld\n",a);
#define FOR(i,a,b) for(lli i=a;i<b;i++)
using namespace std;
struct node
{
lli rem[ 3 ] ;
} ;
lli arr[ 1000006 ] ;
struct node seg[ 8000006 ] ;
lli lazy[ 1000006 ] ;
lli init( lli n)
{
FOR( i,0 ,n)
arr[ i] = 0 ;
FOR( i,0 ,5 * n)
{
seg[ i] .rem [ 0 ] = 0 ;
seg[ i] .rem [ 1 ] = 0 ;
seg[ i] .rem [ 2 ] = 0 ;
}
}
struct node add( struct node seg1,struct node seg2)
{
struct node t;
t.rem [ 0 ] = seg1.rem [ 0 ] + seg2.rem [ 0 ] ;
t.rem [ 1 ] = seg1.rem [ 1 ] + seg2.rem [ 1 ] ;
t.rem [ 2 ] = seg1.rem [ 2 ] + seg2.rem [ 2 ] ;
return t;
}
lli create( lli s,lli e,lli ind)
{
if ( s> e)
return 0 ;
if ( s== e)
{
seg[ ind] .rem [ arr[ s] % 3 ] ++ ;
return 0 ;
}
lli mid= ( s+ e) / 2 ;
create( s,mid,2 * ind+ 1 ) ;
create( mid+ 1 ,e,2 * ind+ 2 ) ;
seg[ ind] = add( seg[ 2 * ind+ 1 ] ,seg[ 2 * ind+ 2 ] ) ;
}
struct node shift1( struct node a)
{
FOR( i,0 ,3 )
{
swap( a.rem [ i] ,a.rem [ 2 ] ) ;
}
return a;
}
lli query( lli s,lli e,lli qs,lli qe,lli ind)
{
if ( lazy[ ind] ! = 0 )
{
lli z= lazy[ ind] % 3 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = lazy[ ind] ;
lazy[ 2 * ind+ 2 ] + = lazy[ ind] ;
}
lazy[ ind] = 0 ;
}
if ( s> qe || e< qs || s> e)
return 0 ;
if ( s>= qs && e<= qe)
return seg[ ind] .rem [ 0 ] ;
lli mid= ( s+ e) / 2 ;
lli q1= query( s,mid,qs,qe,2 * ind+ 1 ) ;
lli q2= query( mid+ 1 ,e,qs,qe,2 * ind+ 2 ) ;
return q1+ q2;
}
lli update( lli s,lli e,lli qs,lli qe,lli ind)
{
if ( lazy[ ind] ! = 0 )
{
lli z= lazy[ ind] % 3 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = lazy[ ind] ;
lazy[ 2 * ind+ 2 ] + = lazy[ ind] ;
}
lazy[ ind] = 0 ;
}
if ( s> qe || e< qs || s> e)
{
return 0 ;
}
if ( s>= qs && qe>= e)
{
lli z= 1 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = 1 ;
lazy[ 2 * ind+ 2 ] + = 1 ;
}
return 0 ;
}
lli mid= ( s+ e) / 2 ;
{
update( s,mid,qs,qe,2 * ind+ 1 ) ;
update( mid+ 1 ,e,qs,qe,2 * ind+ 2 ) ;
}
seg[ ind] = add( seg[ 2 * ind+ 1 ] ,seg[ 2 * ind+ 2 ] ) ;
}
int main( )
{
lli n,q;
sc_( n,q) ;
init( n) ;
create( 0 ,n- 1 ,0 ) ;
while ( q-- )
{
lli flag;
sc( flag) ;
lli s,e;
sc_( s,e) ;
if ( flag== 0 )
{
update( 0 ,n- 1 ,s,e,0 ) ;
}
if ( flag== 1 )
{
lli ans= query( 0 ,n- 1 ,s,e,0 ) ;
printf ( "%lld\n " ,ans) ;
}
}
return 0 ;
} //https://w...content-available-to-author-only...f.com/problems/MULTQ3/
#include <bits/stdc++.h>
#define lli long long int
#define gc() getchar_unlocked();
#define sc(a) scanf("%lld",&a);gc();
#define sc_(a,b) scanf("%lld%lld",&a,&b);gc();
#define pf(a) printf("%lld\n",a);
#define FOR(i,a,b) for(lli i=a;i<b;i++)
using namespace std;
struct node
{
lli rem[ 3 ] ;
} ;
lli arr[ 1000006 ] ;
struct node seg[ 8000006 ] ;
lli lazy[ 1000006 ] ;
lli init( lli n)
{
FOR( i,0 ,n)
arr[ i] = 0 ;
FOR( i,0 ,5 * n)
{
seg[ i] .rem [ 0 ] = 0 ;
seg[ i] .rem [ 1 ] = 0 ;
seg[ i] .rem [ 2 ] = 0 ;
}
}
struct node add( struct node seg1,struct node seg2)
{
struct node t;
t.rem [ 0 ] = seg1.rem [ 0 ] + seg2.rem [ 0 ] ;
t.rem [ 1 ] = seg1.rem [ 1 ] + seg2.rem [ 1 ] ;
t.rem [ 2 ] = seg1.rem [ 2 ] + seg2.rem [ 2 ] ;
return t;
}
lli create( lli s,lli e,lli ind)
{
if ( s> e)
return 0 ;
if ( s== e)
{
seg[ ind] .rem [ arr[ s] % 3 ] ++ ;
return 0 ;
}
lli mid= ( s+ e) / 2 ;
create( s,mid,2 * ind+ 1 ) ;
create( mid+ 1 ,e,2 * ind+ 2 ) ;
seg[ ind] = add( seg[ 2 * ind+ 1 ] ,seg[ 2 * ind+ 2 ] ) ;
}
struct node shift1( struct node a)
{
FOR( i,0 ,3 )
{
swap( a.rem [ i] ,a.rem [ 2 ] ) ;
}
return a;
}
lli query( lli s,lli e,lli qs,lli qe,lli ind)
{
if ( lazy[ ind] ! = 0 )
{
lli z= lazy[ ind] % 3 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = lazy[ ind] ;
lazy[ 2 * ind+ 2 ] + = lazy[ ind] ;
}
lazy[ ind] = 0 ;
}
if ( s> qe || e< qs || s> e)
return 0 ;
if ( s>= qs && e<= qe)
return seg[ ind] .rem [ 0 ] ;
lli mid= ( s+ e) / 2 ;
lli q1= query( s,mid,qs,qe,2 * ind+ 1 ) ;
lli q2= query( mid+ 1 ,e,qs,qe,2 * ind+ 2 ) ;
return q1+ q2;
}
lli update( lli s,lli e,lli qs,lli qe,lli ind)
{
if ( lazy[ ind] ! = 0 )
{
lli z= lazy[ ind] % 3 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = lazy[ ind] ;
lazy[ 2 * ind+ 2 ] + = lazy[ ind] ;
}
lazy[ ind] = 0 ;
}
if ( s> qe || e< qs || s> e)
{
return 0 ;
}
if ( s>= qs && qe>= e)
{
lli z= 1 ;
FOR( i,0 ,z)
{
seg[ ind] = shift1( seg[ ind] ) ;
}
if ( s! = e)
{
lazy[ 2 * ind+ 1 ] + = 1 ;
lazy[ 2 * ind+ 2 ] + = 1 ;
}
return 0 ;
}
lli mid= ( s+ e) / 2 ;
{
update( s,mid,qs,qe,2 * ind+ 1 ) ;
update( mid+ 1 ,e,qs,qe,2 * ind+ 2 ) ;
}
seg[ ind] = add( seg[ 2 * ind+ 1 ] ,seg[ 2 * ind+ 2 ] ) ;
}
int main( )
{
lli n,q;
sc_( n,q) ;
init( n) ;
create( 0 ,n- 1 ,0 ) ;
while ( q-- )
{
lli flag;
sc( flag) ;
lli s,e;
sc_( s,e) ;
if ( flag== 0 )
{
update( 0 ,n- 1 ,s,e,0 ) ;
}
if ( flag== 1 )
{
lli ans= query( 0 ,n- 1 ,s,e,0 ) ;
printf ( "%lld\n " ,ans) ;
}
}
return 0 ;
}
Ly9odHRwczovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmYuY29tL3Byb2JsZW1zL01VTFRRMy8KCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxsaSBsb25nIGxvbmcgaW50CiNkZWZpbmUgZ2MoKSBnZXRjaGFyX3VubG9ja2VkKCk7CiNkZWZpbmUgc2MoYSkgc2NhbmYoIiVsbGQiLCZhKTtnYygpOwojZGVmaW5lIHNjXyhhLGIpIHNjYW5mKCIlbGxkJWxsZCIsJmEsJmIpO2djKCk7CiNkZWZpbmUgcGYoYSkgcHJpbnRmKCIlbGxkXG4iLGEpOwojZGVmaW5lIEZPUihpLGEsYikgZm9yKGxsaSBpPWE7aTxiO2krKykKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IG5vZGUKewogICBsbGkgcmVtWzNdOwp9OwpsbGkgYXJyWzEwMDAwMDZdOwpzdHJ1Y3Qgbm9kZSBzZWdbODAwMDAwNl07CmxsaSBsYXp5WzEwMDAwMDZdOwpsbGkgaW5pdChsbGkgbikKewoJRk9SKGksMCxuKQoJICBhcnJbaV09MDsKCUZPUihpLDAsNSpuKQoJewoJCXNlZ1tpXS5yZW1bMF09MDsKCQlzZWdbaV0ucmVtWzFdPTA7CgkJc2VnW2ldLnJlbVsyXT0wOwoJfQp9CnN0cnVjdCBub2RlIGFkZChzdHJ1Y3Qgbm9kZSBzZWcxLHN0cnVjdCBub2RlIHNlZzIpCnsKCXN0cnVjdCBub2RlIHQ7Cgl0LnJlbVswXT1zZWcxLnJlbVswXStzZWcyLnJlbVswXTsKCXQucmVtWzFdPXNlZzEucmVtWzFdK3NlZzIucmVtWzFdOwoJdC5yZW1bMl09c2VnMS5yZW1bMl0rc2VnMi5yZW1bMl07CglyZXR1cm4gdDsKfQpsbGkgY3JlYXRlKGxsaSBzLGxsaSBlLGxsaSBpbmQpCnsKCWlmKHM+ZSkKCQlyZXR1cm4gMDsKCWlmKHM9PWUpCgl7CgkJc2VnW2luZF0ucmVtW2FycltzXSUzXSsrOwoJCXJldHVybiAwOwoJfQoJbGxpIG1pZD0ocytlKS8yOwoJY3JlYXRlKHMsbWlkLDIqaW5kKzEpOwoJY3JlYXRlKG1pZCsxLGUsMippbmQrMik7CglzZWdbaW5kXT1hZGQoc2VnWzIqaW5kKzFdLHNlZ1syKmluZCsyXSk7Cn0Kc3RydWN0IG5vZGUgc2hpZnQxKHN0cnVjdCBub2RlIGEpCnsKCUZPUihpLDAsMykKCXsKCQlzd2FwKGEucmVtW2ldLGEucmVtWzJdKTsKCX0KCXJldHVybiBhOwp9CmxsaSBxdWVyeShsbGkgcyxsbGkgZSxsbGkgcXMsbGxpIHFlLGxsaSBpbmQpCnsKCWlmKGxhenlbaW5kXSE9MCkKCXsKCQlsbGkgej1sYXp5W2luZF0lMzsKCQlGT1IoaSwwLHopCgkJewoJCQlzZWdbaW5kXT1zaGlmdDEoc2VnW2luZF0pOwoJCX0KCQlpZihzIT1lKQoJCXsKCQkJbGF6eVsyKmluZCsxXSs9bGF6eVtpbmRdOwoJCQlsYXp5WzIqaW5kKzJdKz1sYXp5W2luZF07CgkJfQoJCWxhenlbaW5kXT0wOwoJfQoJaWYocz5xZSB8fCBlPHFzIHx8IHM+ZSkKCQlyZXR1cm4gMDsKCWlmKHM+PXFzICYmIGU8PXFlKQoJICByZXR1cm4gc2VnW2luZF0ucmVtWzBdOwoJbGxpIG1pZD0ocytlKS8yOwoJbGxpIHExPXF1ZXJ5KHMsbWlkLHFzLHFlLDIqaW5kKzEpOwoJbGxpIHEyPXF1ZXJ5KG1pZCsxLGUscXMscWUsMippbmQrMik7CiAgICByZXR1cm4gcTErcTI7Cn0KbGxpIHVwZGF0ZShsbGkgcyxsbGkgZSxsbGkgcXMsbGxpIHFlLGxsaSBpbmQpCnsKCWlmKGxhenlbaW5kXSE9MCkKCXsKCSAgICBsbGkgej1sYXp5W2luZF0lMzsKCQlGT1IoaSwwLHopCgkJewoJCQlzZWdbaW5kXT1zaGlmdDEoc2VnW2luZF0pOwoJCX0KCQlpZihzIT1lKQoJCXsKCQkJbGF6eVsyKmluZCsxXSs9bGF6eVtpbmRdOwoJCQlsYXp5WzIqaW5kKzJdKz1sYXp5W2luZF07CgkJfQoJCWxhenlbaW5kXT0wOwkKCX0KCWlmKHM+cWUgfHwgZTxxcyB8fCBzPmUpCgl7CgkgIHJldHVybiAwOwoJfQogICAgaWYocz49cXMgJiYgcWU+PWUpCiAgICB7CiAgICAJbGxpIHo9MTsKCQlGT1IoaSwwLHopCgkJewoJCQlzZWdbaW5kXT1zaGlmdDEoc2VnW2luZF0pOwoJCX0KCQlpZihzIT1lKQoJCXsKCQkJbGF6eVsyKmluZCsxXSs9MTsKCQkJbGF6eVsyKmluZCsyXSs9MTsKCQl9CgkJcmV0dXJuIDA7CiAgICB9CiAgICBsbGkgbWlkPShzK2UpLzI7CiAgICB7CiAgICAgIHVwZGF0ZShzLG1pZCxxcyxxZSwyKmluZCsxKTsKICAgICAgdXBkYXRlKG1pZCsxLGUscXMscWUsMippbmQrMik7CiAgICB9CiAgICBzZWdbaW5kXT1hZGQoc2VnWzIqaW5kKzFdLHNlZ1syKmluZCsyXSk7Cn0KaW50IG1haW4oKQp7CglsbGkgbixxOwoJc2NfKG4scSk7Cglpbml0KG4pOwoJY3JlYXRlKDAsbi0xLDApOwoJd2hpbGUocS0tKQoJewoJCWxsaSBmbGFnOwoJCXNjKGZsYWcpOwoJCWxsaSBzLGU7CgkJc2NfKHMsZSk7CgkJaWYoZmxhZz09MCkKCQl7CgkJCXVwZGF0ZSgwLG4tMSxzLGUsMCk7CgkJfQoJCWlmKGZsYWc9PTEpCgkJewoJCSAgICAgbGxpIGFucz1xdWVyeSgwLG4tMSxzLGUsMCk7CgkJICAgICBwcmludGYoIiVsbGRcbiIsYW5zKTsJCgkJfQoJfQoJcmV0dXJuIDA7Cn0vL2h0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZi5jb20vcHJvYmxlbXMvTVVMVFEzLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGxpIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBnYygpIGdldGNoYXJfdW5sb2NrZWQoKTsKI2RlZmluZSBzYyhhKSBzY2FuZigiJWxsZCIsJmEpO2djKCk7CiNkZWZpbmUgc2NfKGEsYikgc2NhbmYoIiVsbGQlbGxkIiwmYSwmYik7Z2MoKTsKI2RlZmluZSBwZihhKSBwcmludGYoIiVsbGRcbiIsYSk7CiNkZWZpbmUgRk9SKGksYSxiKSBmb3IobGxpIGk9YTtpPGI7aSsrKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3Qgbm9kZQp7CiAgIGxsaSByZW1bM107Cn07CmxsaSBhcnJbMTAwMDAwNl07CnN0cnVjdCBub2RlIHNlZ1s4MDAwMDA2XTsKbGxpIGxhenlbMTAwMDAwNl07CmxsaSBpbml0KGxsaSBuKQp7CglGT1IoaSwwLG4pCgkgIGFycltpXT0wOwoJRk9SKGksMCw1Km4pCgl7CgkJc2VnW2ldLnJlbVswXT0wOwoJCXNlZ1tpXS5yZW1bMV09MDsKCQlzZWdbaV0ucmVtWzJdPTA7Cgl9Cn0Kc3RydWN0IG5vZGUgYWRkKHN0cnVjdCBub2RlIHNlZzEsc3RydWN0IG5vZGUgc2VnMikKewoJc3RydWN0IG5vZGUgdDsKCXQucmVtWzBdPXNlZzEucmVtWzBdK3NlZzIucmVtWzBdOwoJdC5yZW1bMV09c2VnMS5yZW1bMV0rc2VnMi5yZW1bMV07Cgl0LnJlbVsyXT1zZWcxLnJlbVsyXStzZWcyLnJlbVsyXTsKCXJldHVybiB0Owp9CmxsaSBjcmVhdGUobGxpIHMsbGxpIGUsbGxpIGluZCkKewoJaWYocz5lKQoJCXJldHVybiAwOwoJaWYocz09ZSkKCXsKCQlzZWdbaW5kXS5yZW1bYXJyW3NdJTNdKys7CgkJcmV0dXJuIDA7Cgl9CglsbGkgbWlkPShzK2UpLzI7CgljcmVhdGUocyxtaWQsMippbmQrMSk7CgljcmVhdGUobWlkKzEsZSwyKmluZCsyKTsKCXNlZ1tpbmRdPWFkZChzZWdbMippbmQrMV0sc2VnWzIqaW5kKzJdKTsKfQpzdHJ1Y3Qgbm9kZSBzaGlmdDEoc3RydWN0IG5vZGUgYSkKewoJRk9SKGksMCwzKQoJewoJCXN3YXAoYS5yZW1baV0sYS5yZW1bMl0pOwoJfQoJcmV0dXJuIGE7Cn0KbGxpIHF1ZXJ5KGxsaSBzLGxsaSBlLGxsaSBxcyxsbGkgcWUsbGxpIGluZCkKewoJaWYobGF6eVtpbmRdIT0wKQoJewoJCWxsaSB6PWxhenlbaW5kXSUzOwoJCUZPUihpLDAseikKCQl7CgkJCXNlZ1tpbmRdPXNoaWZ0MShzZWdbaW5kXSk7CgkJfQoJCWlmKHMhPWUpCgkJewoJCQlsYXp5WzIqaW5kKzFdKz1sYXp5W2luZF07CgkJCWxhenlbMippbmQrMl0rPWxhenlbaW5kXTsKCQl9CgkJbGF6eVtpbmRdPTA7Cgl9CglpZihzPnFlIHx8IGU8cXMgfHwgcz5lKQoJCXJldHVybiAwOwoJaWYocz49cXMgJiYgZTw9cWUpCgkgIHJldHVybiBzZWdbaW5kXS5yZW1bMF07CglsbGkgbWlkPShzK2UpLzI7CglsbGkgcTE9cXVlcnkocyxtaWQscXMscWUsMippbmQrMSk7CglsbGkgcTI9cXVlcnkobWlkKzEsZSxxcyxxZSwyKmluZCsyKTsKICAgIHJldHVybiBxMStxMjsKfQpsbGkgdXBkYXRlKGxsaSBzLGxsaSBlLGxsaSBxcyxsbGkgcWUsbGxpIGluZCkKewoJaWYobGF6eVtpbmRdIT0wKQoJewoJICAgIGxsaSB6PWxhenlbaW5kXSUzOwoJCUZPUihpLDAseikKCQl7CgkJCXNlZ1tpbmRdPXNoaWZ0MShzZWdbaW5kXSk7CgkJfQoJCWlmKHMhPWUpCgkJewoJCQlsYXp5WzIqaW5kKzFdKz1sYXp5W2luZF07CgkJCWxhenlbMippbmQrMl0rPWxhenlbaW5kXTsKCQl9CgkJbGF6eVtpbmRdPTA7CQoJfQoJaWYocz5xZSB8fCBlPHFzIHx8IHM+ZSkKCXsKCSAgcmV0dXJuIDA7Cgl9CiAgICBpZihzPj1xcyAmJiBxZT49ZSkKICAgIHsKICAgIAlsbGkgej0xOwoJCUZPUihpLDAseikKCQl7CgkJCXNlZ1tpbmRdPXNoaWZ0MShzZWdbaW5kXSk7CgkJfQoJCWlmKHMhPWUpCgkJewoJCQlsYXp5WzIqaW5kKzFdKz0xOwoJCQlsYXp5WzIqaW5kKzJdKz0xOwoJCX0KCQlyZXR1cm4gMDsKICAgIH0KICAgIGxsaSBtaWQ9KHMrZSkvMjsKICAgIHsKICAgICAgdXBkYXRlKHMsbWlkLHFzLHFlLDIqaW5kKzEpOwogICAgICB1cGRhdGUobWlkKzEsZSxxcyxxZSwyKmluZCsyKTsKICAgIH0KICAgIHNlZ1tpbmRdPWFkZChzZWdbMippbmQrMV0sc2VnWzIqaW5kKzJdKTsKfQppbnQgbWFpbigpCnsKCWxsaSBuLHE7CglzY18obixxKTsKCWluaXQobik7CgljcmVhdGUoMCxuLTEsMCk7Cgl3aGlsZShxLS0pCgl7CgkJbGxpIGZsYWc7CgkJc2MoZmxhZyk7CgkJbGxpIHMsZTsKCQlzY18ocyxlKTsKCQlpZihmbGFnPT0wKQoJCXsKCQkJdXBkYXRlKDAsbi0xLHMsZSwwKTsKCQl9CgkJaWYoZmxhZz09MSkKCQl7CgkJICAgICBsbGkgYW5zPXF1ZXJ5KDAsbi0xLHMsZSwwKTsKCQkgICAgIHByaW50ZigiJWxsZFxuIixhbnMpOwkKCQl9Cgl9CglyZXR1cm4gMDsKfQ==
compilation info
prog.cpp:158:8: error: redefinition of 'struct node'
struct node
^
prog.cpp:11:8: error: previous definition of 'struct node'
struct node
^
prog.cpp:162:16: error: redefinition of 'long long int arr [1000006]'
lli arr[1000006];
^
prog.cpp:15:5: note: 'long long int arr [1000006]' previously declared here
lli arr[1000006];
^
prog.cpp:163:24: error: redefinition of 'node seg [8000006]'
struct node seg[8000006];
^
prog.cpp:16:13: note: 'node seg [8000006]' previously declared here
struct node seg[8000006];
^
prog.cpp:164:17: error: redefinition of 'long long int lazy [1000006]'
lli lazy[1000006];
^
prog.cpp:17:5: note: 'long long int lazy [1000006]' previously declared here
lli lazy[1000006];
^
prog.cpp: In function 'long long int init(long long int)':
prog.cpp:165:5: error: redefinition of 'long long int init(long long int)'
lli init(lli n)
^
prog.cpp:18:5: note: 'long long int init(long long int)' previously defined here
lli init(lli n)
^
prog.cpp: In function 'node add(node, node)':
prog.cpp:176:13: error: redefinition of 'node add(node, node)'
struct node add(struct node seg1,struct node seg2)
^
prog.cpp:29:13: note: 'node add(node, node)' previously defined here
struct node add(struct node seg1,struct node seg2)
^
prog.cpp: In function 'long long int create(long long int, long long int, long long int)':
prog.cpp:184:5: error: redefinition of 'long long int create(long long int, long long int, long long int)'
lli create(lli s,lli e,lli ind)
^
prog.cpp:37:5: note: 'long long int create(long long int, long long int, long long int)' previously defined here
lli create(lli s,lli e,lli ind)
^
prog.cpp: In function 'node shift1(node)':
prog.cpp:198:13: error: redefinition of 'node shift1(node)'
struct node shift1(struct node a)
^
prog.cpp:51:13: note: 'node shift1(node)' previously defined here
struct node shift1(struct node a)
^
prog.cpp: In function 'long long int query(long long int, long long int, long long int, long long int, long long int)':
prog.cpp:206:5: error: redefinition of 'long long int query(long long int, long long int, long long int, long long int, long long int)'
lli query(lli s,lli e,lli qs,lli qe,lli ind)
^
prog.cpp:59:5: note: 'long long int query(long long int, long long int, long long int, long long int, long long int)' previously defined here
lli query(lli s,lli e,lli qs,lli qe,lli ind)
^
prog.cpp: In function 'long long int update(long long int, long long int, long long int, long long int, long long int)':
prog.cpp:231:5: error: redefinition of 'long long int update(long long int, long long int, long long int, long long int, long long int)'
lli update(lli s,lli e,lli qs,lli qe,lli ind)
^
prog.cpp:84:5: note: 'long long int update(long long int, long long int, long long int, long long int, long long int)' previously defined here
lli update(lli s,lli e,lli qs,lli qe,lli ind)
^
prog.cpp: In function 'int main()':
prog.cpp:272:5: error: redefinition of 'int main()'
int main()
^
prog.cpp:125:5: note: 'int main()' previously defined here
int main()
^
stdout