Baekjoon/etc

[백준 2003] 수들의 합 2 (Two Pointer) (C/C++)

워니- 2020. 3. 29. 03:52
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
 
int N, M;
int A[10010];
int ans;
 
int main(void)
{
//    freopen("B2003_input.txt", "r", stdin);
    
    cin >> N >> M;
    
    int left = 1;
    int right = 1;
    int sum = 0;
    
    for(int i = 1; i <= N; i++)
    {
        cin >> A[i];
    }
    
    while(left <= right && right <= N+1)
    {
        if(sum < M)
        {
            sum += A[right++];
        }
        else if(sum == M)
        {
            ans++;
            sum += A[right++];    
        }
        else
        {
            sum -= A[left++];
        }
    }
    
    cout << ans;
    
    return 0;
}
cs