求助,WA on #3
查看原帖
求助,WA on #3
592238
Elairin176楼主2022/10/30 15:17
#include <iostream>
#include <unordered_map>
using namespace std;
inline void write(int x)
{
	if(x<0)
	{
		putchar('-');
		x=-x;
	}
	if(x>9)
	{
		write(x/10);
	}
	putchar(x%10+'0');
}
inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=x*10+c-'0';
		c=getchar();
	}
    return x*f;
}
unordered_map<int,int>m;
int n,k,a[114514],q[114514],ans;
int main(void){
	n=read();
	k=read();
	m[0]=1;
	for(int i=1;i<=n;i++){
		a[i]=read();
		q[i]=(q[i-1]+a[i])%k;
		m[q[i]]++;
	}
	for(int i=0;i<k;i++){
		ans+=m[i]*(m[i]-1)/2;
	}
	write(ans);
}
2022/10/30 15:17
加载中...