POJ 3370 万圣节

#include <stdio.h>
#include<string.h> 
int n,m,i,s,t; 
int a[100009]; 
int sum[100009]; 
int hash[100009];  
int main() 
{
 
    while(scanf("%d%d",&n,&m),n+m) 
    { 
        memset(hash,0,sizeof(hash)); 
        for( i=1;i<=m;i++) 
        { 
            scanf("%d",&a[i]); 
        } 
        s=1; 
        sum[0]=0; 
        for(i=1;i<=m;i++) 
        { 
            sum[i]=(sum[i-1]+a[i])%n; 
           
            if(sum[i]==0) 
            { 
                t=i; 
                break; 
            } 
            if(hash[sum[i]]>0) 
            { 
                s=hash[sum[i]]+1; 
                t=i; 
                break; 
            } 
            hash[sum[i]]=i; 
        } 
        for(i=s;i<t;i++) 
   printf("%d ",i); 
        printf("%d\n",t); 
    } 
return 0; 
posted @ 2013-08-12 21:52  hpu张亚飞  阅读(154)  评论(0编辑  收藏  举报