Pagini recente » Cod sursa (job #2764773) | Cod sursa (job #3264445) | Cod sursa (job #294198) | Cod sursa (job #99207) | Cod sursa (job #170671)
Cod sursa(job #170671)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "aib.in"
#define out "aib.out"
#define dim 100001
int N, M, T;
int A[dim], S[dim];
int main()
{
int K, X, Y;
freopen(in,"r",stdin);
freopen(out,"w",stdout);
S[0] = 0;
scanf("%d%d", &N, &M);
for ( int i = 1; i <= N; i++ )
{
scanf("%d", &A[i]);
S[i] = A[i] + S[i-1];
}
for ( ; M; M-- )
{
scanf("%d", &K);
if ( K < 2 )
{
scanf("%d%d", &X, &Y);
if ( K == 1 )
{
printf("%d\n", S[Y] - S[X-1] );
continue;
}
A[X] += Y;
for ( int i = 1; i <= N; i++ )
S[i] = S[i-1] + A[i];
}
else if ( K == 2 )
{
int ok = 0;
scanf("%d", &X);
int i;
for ( i = 1; i <= N && !ok; i++ )
if ( S[i] == X ) ok = 1;
if ( !ok ) printf("-1\n");
else printf("%d\n", i-1);
}
}
}