1 solutions
-
0
C :
#include<stdio.h> int a[1000000]; int main() { int M,N,m,n,i,R; char str[6]; scanf("%d %d",&N,&M); for(i=1;i<=N;i++) scanf("%d",&a[i-1]); while(M--){ R=0; scanf("%s",str); scanf("%d%d",&m,&n); if(str[0]=='A') a[m-1]=a[m-1]+n; else{ for(i=m-1;i<n;i++) R=R+a[i]; printf("%d\n",R); } } return 0; }C++ :
#include<stdio.h> #include<math.h> #include<string.h> int main() { int N,M,i,a[105],m,n,x; char b[6]; scanf("%d%d",&N,&M); for(i=1;i<=N;i++) scanf("%d",&a[i]); while(M--) { int sum=0; scanf("%s%d%d",b,&m,&n); if(strcmp(b,"QUERY")==0) { for(i=m;i<=n;i++) sum+=a[i]; printf("%d\n",sum); } else { i=m; x=n; a[i]=a[i]+x; } } return 0; }Pascal :
var t:array [0..1000001] of record a,b,sum:longint; end; people:array [0..1000001] of longint; p,x,n,t1,a1,b1,sum1,i,k:longint; st,s1,st1:string; procedure make(x,y:longint;num:longint); begin t[num].a:=x;t[num].b:=y; if (x=y) then t[num].sum:=people[y] else begin make(x,(x+y) div 2,num+num); make((x+y) div 2+1,y,num+num+1); t[num].sum:=t[num+num].sum+t[num+num+1].sum; end; end; procedure query(i,j:longint;num:longint); var min:longint; begin if (i<=t[num].a) and (j>=t[num].b) then sum1:=sum1+t[num].sum else begin min:=(t[num].a+t[num].b) div 2; if i>min then query(i,j,num+num+1) else if j<=min then query(i,j,num+num) else begin query(i,j,num+num); query(i,j,num+num+1); end; end; end; procedure add(i,j:longint;num:longint); begin t[num].sum:=t[num].sum+j; if (t[num].a=i) and (t[num].b=i) then exit; if i>((t[num].a+t[num].b) div 2) then add(i,j,num+num+1) else add(i,j,num+num); end; begin readln(n,k); for i:=1 to n do read(people[i]);readln; make(1,n,1); for i:=1 to k do begin readln(s1); t1:=pos(' ',s1); st1:=copy(s1,1,t1-1); delete(s1,1,t1); t1:=pos(' ',s1); st:=copy(s1,1,t1-1); delete(s1,1,t1); val(st,a1); val(s1,b1); if st1='QUERY'then begin sum1:=0;query(a1,b1,1);writeln(sum1);end; if st1='ADD' then add(a1,b1,1); end; end.Java :
import java.util.Scanner; public class Main { static Scanner sc=new Scanner(System.in); static int N=sc.nextInt(); static int M=sc.nextInt(); static int arr[]=new int[N+1]; public static void main(String[] args) { for(int i=1;i<N+1;i++) { arr[i]=sc.nextInt(); } arr[0]=-1; getSum(M); } public static void getSum(int a) { while(a-->0) { String str=sc.next(); if(str.equals("QUERY")) { int m=sc.nextInt(); int n=sc.nextInt(); int sum=0; for(int i=m;i<=n;i++) { sum+=arr[i]; } System.out.println(sum); }else{ int m=sc.nextInt(); int n=sc.nextInt(); arr[m]+=n; } } } }
Information
- ID
- 20234
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 10
- Tags
- # Submissions
- 1
- Accepted
- 1
- Uploaded By