首页 > 其他 > 详细

5065: 最长连续子序列

时间:2019-04-09 21:21:23      阅读:110      评论:0      收藏:0      [点我收藏+]

描述

给定一系列非负整数,求最长的连续子序列,使其和是7的倍数。

输入

第一行为正整数N(1<=N<=50000),接下来有N行,每行有一个非负整数,所有整数不大于10^6。

输出

如果存在连续子序列,其和为7的倍数,则输出子序列长度,如果不存在则输出0。

样例输入

样例输出

题目来源

台州学院“达内杯”第九届大学生程序设计竞赛

 

技术分享图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     ios::sync_with_stdio(false);
 6     int n,d,ans=0,flag=0,a[7],b[7];
 7     memset(a,0,sizeof(a));
 8     memset(b,0,sizeof(b));
 9     cin>>n;
10     for(int i=1;i<=n;i++){
11         cin>>d;
12         ans=(ans+d)%7;
13         a[ans]=i;    //余数的位置
14         if(!b[ans]&&ans) b[ans]=i;
15     }
16     int maxx=0;
17     for(int i=0;i<=6;i++){
18         maxx=max(maxx,a[i]-b[i]);
19     }
20     printf("%d\n",maxx);
21     return 0;
22 }
View Code

 

 

 

5065: 最长连续子序列

原文:https://www.cnblogs.com/qq-1585047819/p/10679797.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!