n개의 수를 나열한 수열이 입력되었을 때,
a번째 수부터 b번째 수까지의 합을 구한 후, 그 합과 같은 연속 부분 수열의 개수를 출력해보자.
입력
첫 번째 줄에 수의 개수(n)가 입력된다.
두 번째 줄에 n개의 수(ci, c1, ... , cn)가 스페이스로 구분되어 입력된다.
세 번째 줄에 a, b가 스페이스로 구분되어 입력된다.
[1<=n<=100]
[1<=ci<=10]
[1<=a<=b<=n]
출력
연속 부분 수열의 개수를 출력한다.
입력 예시 예시 복사
10 4 3 10 1 4 5 7 3 8 9 3 7
출력 예시
4
여기서
#include<stdio.h>
int main()
{
int arr[101], n, i, j, a, start, end, sum=0, solve=0;
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d", &a);
arr[a]=1;
}
scanf("%d %d", &start, &end);
for(i=start;i<=end;i++){
sum=sum+i;
}
}
이것처럼 부분합 까진 만들었는데 이 부분합과같은 수열의 갯수를 어떻게 찾아야할지 모르겠어요
- dc official App
4번째줄과 8번째줄의 배열은 빼고 봐주세요 - dc App
1번째부터 끝까지 더하다가 값이 같으면 +1 2번째부터~ 하고 기존 부분합 빼기?
혹시 배열을 써야할까요? - dc App
근데 그걸 어떻게 코드로 써야할지 모르겠네요 - dc App