poj 3370

鸽巢原理。用long long 与scanf.

#include<iostream>
#include<fstream>

using namespace std;

int n,m;
long long a[100001];
int b[100001];

void read(){
	int i,j,k;
//	ifstream cin("in.txt");
	while(cin>>m>>n){
	if(m==0&&n==0) return ;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&j);
		a[i]=a[i-1]+j;
	}
	memset(b,0,sizeof(b));

	for(i=1;i<=m;i++)
	{
		if(a[i]%m==0)
		{
			for(j=1;j<=i;j++)
				cout<<j<<' ';
			cout<<endl;
			break;
		}
		if(b[a[i]%m]==0)
		{
			b[a[i]%m]=i;
		}
		else
		{
			for(j=b[a[i]%m]+1;j<=i;j++)
				cout<<j<<' ';
			cout<<endl;
			break;
		}
	}
	}
}




int main(){
	read();
	return 0;
}

posted on 2011-03-27 16:37  宇宙吾心  阅读(290)  评论(0)    收藏  举报

导航