Cod sursa(job #3161108)
Utilizator | Data | 25 octombrie 2023 19:33:49 | |
---|---|---|---|
Problema | Arbori indexati binar | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.87 kb |
#include <fstream>
#define dim 100001
using namespace std;
ifstream fin ("aib.in");
ofstream fout("aib.out");
int n,m,t,i;
int s[dim];
int k,x,y;
int main () {
s[0]=0;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>x;
s[i]=x+s[i-1];
}
for(i=m;i>=0;i--)
{
fin>>k;
if(k<2)
{
fin>>x>>y;
if(k==1)
{
fout<<s[y]-s[x-1]<<'\n';
continue;
}
for(int j=x;j<=n;j++)
s[i]+=y;
}
else
{
bool ok=0;
fin>>x;
for(int j=1;j<=n && !ok;j++)
if(s[i]==x)
ok=1;
if(!ok)
fout<<-1;
else
fout<<n;
fout<<'\n';
}
}
return 0;
}