poj 2356 Find a multiple(鸽巢原理+标记)
题目:#include #includeusing namespace std;const int maxn=1e4+5;int sum[maxn],tag[maxn],a[maxn],l,r,N;int main(){ //freopen("cin.txt","r",stdin); while(cin>>N){ memset(sum,0,sizeof(sum)); memset(tag,-1,sizeof(tag)); tag[0]=0; for(int i=1;i<=N;i++){ scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i]; int m=sum[i]%N; if(tag[m]==-1) tag[m]=i; else { l=tag[m]; r=i; } } printf("%d\n",r-l); for(int i=l+1;i<=r;i++){ printf("%d\n",a[i]); } } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~