D - 必做题11- 4


题目描述

东东和他的女朋友(幻想的)去寿司店吃晚餐(在梦中),他发现了一个有趣的事情,这家餐厅提供的 n 个的寿司被连续的放置在桌子上 (有序),东东可以选择一段连续的寿司来吃
东东想吃鳗鱼,但是东妹想吃金枪鱼。核 平 起 见,他们想选择一段连续的寿司(这段寿司必须满足金枪鱼的数量等于鳗鱼的数量,且前一半全是一种,后一半全是另外一种)我们用1代表鳗鱼,2代表金枪鱼。
比如,[2,2,2,1,1,1]这段序列是合法的,[1,2,1,2,1,2]是非法的。因为它不满足第二个要求。
东东希望你能帮助他找到最长的一段合法寿司,以便自己能吃饱。
Input
输入:
第一行:一个整数n(2≤n≤100000),寿司序列的长度。
第二行:n个整数(每个整数不是1就是2,意义如上所述)
Output
输出:一个整数(代表东东可以选择的最长的一段连续的且合法的寿司)

Examples
Input
7
2 2 2 1 1 2 2
Output
4
Input
6
1 2 1 2 1 2
Output
2
Input
9
2 2 1 1 1 2 2 2 2
Output
6

题目分析

这里我用a数组存储输入的数字串,num数组存储连续数字的个数。然后使用双指针的方法,选取满足条件序列中数目最小数字的个数,然后选出所有的里面数目最大值。最后需要注意输出的值应该是ans的两倍。

代码实现

#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
#define _for(i,a,b) for(int i = (a); i < (b); i++)
#define _rep(i,a,b) for(int i = (a); i <= (b); i++)const int MAXN = 1e5 + 100;
int n,ans;
int a[MAXN];
int num[3];int main(){memset(num,0,sizeof(num));scanf("%d",&n);_for(i,0,n){scanf("%d",&a[i]);}int l,r;
//  int flag = 1;l = 0,r = 0;while(l < n && r < n){while(r < n && a[l] == a[r]){r++;}num[a[l]] = r-l;l = r;int m = min(num[1],num[2]);ans = max(ans,m);}cout << ans * 2;
}

week11作业题_D - 必做题11-4相关推荐

  1. week11作业——C - 必做题11-3

    题目 Julius Caesar 曾经使用过一种很简单的密码.对于明文中的每个字符,将它用它字母表中后 555 位对应的字符来代替,这样就得到了密文.比如字符'A'用'F'来代替.如下是密文和明文中字 ...

  2. 【Week 11 作业】必做题

    Week 11 必做题 A 必做题 1 题目描述 输入格式 输出格式 输入样例 输出样例 思路 代码 B 必做题 2 题目描述 输入格式 输出格式 数据范围 样例输入 样例输出 思路 代码 C 必做题 ...

  3. week11 C - 必做题11-3

    必做题11-3 Julius Caesar 曾经使用过一种很简单的密码.对于明文中的每个字符,将它用它字母表中后 555 位对应的字符来代替,这样就得到了密文.比如字符'A'用'F'来代替.如下是密文 ...

  4. 计算机二级msoffice设计,2017计算机二级MSoffice攻关必做题

    2017计算机二级MSoffice攻关必做题 参考答案及解析: 1.A [解析]程序执行的效率与数据的存储结构.数据的逻辑结构.程序的控制结构.所处理的数据量等有关. 2.D [解析]队列的修改是依先 ...

  5. 2018.12.10 第5题:定义两个类,描述如下: [必做题] 5.1定义一个人类Person: 5.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is

    #定义两个类,描述如下: [必做题] 5.1定义一个人类Person: 5.1.1定义一个方法sayHello(),可以向对方发出问候语"hello,my name is XXX" ...

  6. 全国青少年信息素养大赛2023年python·必做题模拟四卷

    全国青少年电子信息智能创新大赛 python·必做题模拟四卷 一.单选题 1. 取整除的运算符是?( ) A./ B.// C.÷ D.** 题型:单选题 答案:B 难度:一般 试题解析:B

  7. 2018.12.10 第4题:定义两个类,描述如下: [必做题] 4.1定义一个人类Person: 4.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is

    #定义两个类,描述如下: [必做题] 4.1定义一个人类Person: 4.1.1定义一个方法sayHello(),可以向对方发出问候语"hello,my name is XXX" ...

  8. 作业辅导视频 SS2023-HW10:Laplace反变换-因式分解方法-必做题部分

    拉普拉斯反变换-第一部分 信号与系统 2023(春季) 作业参考答案 - 第 十次作业 信号与系统 2023(春季) 作业要求 - 第10次作业 信号与系统分析2022春季作业-参考答案:第十次作业 ...

  9. 程序设计思维与实践 Week11 作业 必做题 A-蒜头君买房子

    题目链接:A-蒜头君买房子 题目描述: 蒜头君从现在开始工作,年薪N万.他希望在蒜厂附近买一套60平米的房子,现在价格是 200万.假设房子价格以每年百分之K增长,并且蒜头君未来年薪不变,且不吃不喝, ...

最新文章

  1. Rust即将发布1.0版本,Go持续获得关注:如何在新生语言之间做出抉择
  2. 【算法+OpenCV】基于opencv的直线和曲线拟合与绘制(最小二乘法)
  3. 数据中心冷热空气流控制优化方案
  4. boost::math::differentiation用法的测试程序
  5. 解析“60k”大佬的19道C#面试题(上)
  6. 跟我学 Java 8 新特性之 Stream 流(三)缩减操作
  7. spring 概念理解(资料)
  8. 构造函数的五种继承方法
  9. [Android]解决ClickableSpan中点击后ListView中item的长按冲突的问题
  10. 分布式系统工具箱 Spring Cloud 概览
  11. TheFatRat生成免杀木马(powershell)报错问题
  12. nodejs利用tinyPNG的API批量压缩图像文件
  13. 零中频接收机频率转换图_VHF跳频电台接收机射频前端的仿真设计
  14. 手把手教你:人脸识别的视频打码(基于opencv的人脸打马赛克)
  15. EXCEL如何将一列转为一行
  16. bzoj 5245: [Fjwc2018]欧拉函数 线段树+bitset
  17. 捕食搜索matlab代码,第8章——捕食搜索算法分析.ppt
  18. 华为南京研究所各部门
  19. 量子计算与量子软件(一)
  20. Linux常用命令——ssh命令

热门文章

  1. C语言编程判断是否为2的幂,C语言判断一个数是否是2的幂次方或4的幂次方
  2. 第12周 立方累加和
  3. Numpy *****
  4. 深入hotstuff与pbft协议的核心
  5. 安卓通讯录管理软件_细说|安卓系统50个你不知道的使用窍门!每个都值得你去收藏!...
  6. P3345 [ZJOI2015]幻想乡战略游戏(动态点分治)
  7. 2019年有什么新的创业机会?
  8. E6410安装PVE直通显卡安装LibreELEC系统
  9. 广东省交通行业十四五项目前景与建设规模分析报告2022版
  10. CSS 实现字体发光效果 text-shadow