반응형

 

 

 

<코드>

#include<iostream>
#include<algorithm>
#include<vector>
#include<memory.h>
using namespace std;

int c,d,n;
long long sum, x, ans;
long long arr[1000001];

int main() 
{
	ios::sync_with_stdio(0); 
	cin.tie(0); 

	cin >> c;
	

	while (c--)
	{
		cin >> d >> n;
		sum = 0;

		for (int i = 0; i < n; i++)
		{
			cin >> x;
			sum += x;
			arr[sum % d]++;
		}

		ans = arr[0];

		for (int i = 0; i < d; i++)
		{
			ans += arr[i] * (arr[i] - 1) / 2;
		}
		cout << ans << '\n';
		memset(arr, 0, sizeof(arr));
	}

}

 

풀이 방법

비슷한 문제 풀이법

cocoon1787.tistory.com/396

 

[C/C++] 백준 10986번 - 나머지 합

<코드> #include #include #include #include using namespace std; int N, M, x; long long cnt[1001]; long long sum, ans; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> M; for (int..

cocoon1787.tistory.com

 

 

 

 

www.acmicpc.net/problem/3673

 

3673번: 나눌 수 있는 부분 수열

양의 정수로 이루어진 수열이 주어졌을 때, 연속하는 부분 수열의 합이 d로 나누어 떨어지는 것의 개수를 구하는 프로그램을 작성하시오. 예를 들어, 아래와 같은 수열의 부분 수열 중 4로 나누

www.acmicpc.net

 

반응형

+ Recent posts