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;
}
浙公网安备 33010602011771号