1289 大鱼吃小鱼 

题目来源: Codility

基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题

 收藏

 关注

有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?

Input

第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。
第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A[i] <= 10^9,B[i] = 0 或 1,0表示向左,1表示向右)。

Output

输出1个数,表示最终剩下的鱼的数量。

Input示例

5
4 0
3 1
2 0
1 0
5 0

Output示例

2

#include<bits/stdc++.h>
using namespace std;
int a[100010];
int b[100010];
int lmax[100010];//当前位置的左边向右的鱼的最大值
int rmax[100010];//当前位置的右边向左的鱼的最大值
int main()
{
    //freopen("in.txt","r",stdin);
    int N;
    cin>>N;
    for(int i=0;i<N;i++)cin>>a[i]>>b[i];

int max_l=-1;int max_r=-1;
    lmax[0]=-1;
    rmax[N-1]=-1;
    for(int i=0;i<N-1;i++)
    {
        if(b[i]==1)
        {
            if(a[i]>max_r)max_r=a[i];
        }
        else
        {
            if(a[i]>max_r)max_r=-1;
        }
        lmax[i+1]=max_r;
    }

for(int i=N-1;i>=1;i--)
    {
        if(b[i]==0)
        {
            if(a[i]>max_l)max_l=a[i];
        }
        else
        {
            if(a[i]>max_l)max_l=-1;
        }
        rmax[i-1]=max_l;
    }

int ans=0;
    for(int i=0;i<N;i++)
    {
        if(b[i]==0)
        {
            if(a[i]>=lmax[i])ans++;
        }
        else
        {
            if(a[i]>=rmax[i])ans++;
        }
    }
    cout<<ans<<endl;

return 0;
}

51 Nod 1289 大鱼吃小鱼相关推荐

  1. 51 nod 1427 文明 (并查集 + 树的直径)

    1427 文明 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 安德鲁在玩一个叫"文明"的游戏.大妈正在 ...

  2. 1289 大鱼吃小鱼

    1289 大鱼吃小鱼 基准时间限制:1 秒 空间限制:131072 KB 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右 ...

  3. 51 nod 1405 树的距离之和

    1405 树的距离之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和. ...

  4. 51 nod 1439 互质对(Moblus容斥)

    1439 互质对 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 有n个数字,a[1],a[2],-,a[n].有一个集合,刚开 ...

  5. [STL乱搞]51 Nod——1573 美丽的集合

    [STL乱搞]51 Nod--1573 美丽的集合 题目梗概 在多重集之中,同一个元素可以出现多次. 我们现在有n个多重集合,第i个集合最开始都有一个元素ai(1≤i≤n). 定义多重集合的价值为子集 ...

  6. 51nod -1289 . 大鱼吃小鱼(思维)

    1289 . 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度 ...

  7. (模拟 - 栈应用)1289 大鱼吃小鱼

    1289 大鱼吃小鱼 1 秒 131,072 KB 5 分 1 级题 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出 ...

  8. 51nod - 1289 大鱼吃小鱼(栈)

    思路: 向左走的可能会被向右走的吃,向右走的可能被向左的吃. 栈中存向右的小鱼. 如果当前鱼向左,则依次与栈顶鱼比较大小,如果能吃光则能存活:如果当前鱼向右,则加入栈. 最后栈中鱼的数量加上向左走存活 ...

  9. 51Nod 1289 大鱼吃小鱼 栈的简单模拟

    传送门:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 emmmmmm-- 大概就是--①栈空:向左右,最终必然 ...

最新文章

  1. 在pycharm中安装第三方库
  2. Redis存储总用String?你大概错过了更优的使用方法
  3. 实战:搭建CA认证中心,使用CA证书搭建HTTPS
  4. springboot 详解 (四)redis filter
  5. 硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布
  6. redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?
  7. IIS 之 未能加载文件或程序集“IBM.Data.DB2”或它的某一个依赖项。试图加载格式不正确的程序。...
  8. 当你输入一个网址的时候,实际会发生什么?(转)
  9. IE故障修复之点击无反应
  10. 记一次外接键盘win键失灵
  11. 阅读笔记-2022-Enhancing Sequential Recommendation with Graph Contrastive Learning
  12. Mac下好用的软件推荐系统设置
  13. 批量将物流信息导出保存在表格中
  14. LRN和BN的数学公式理解与区别
  15. Twitter开发者账号【推特开发者文档系列10】——API参考索引
  16. vue给元素添加指令_Vue指令动态模糊元素
  17. 服务器关闭微软小娜,win10小娜总是自动弹出怎么禁止-禁止win10小娜自动弹出的方法 - 河东软件园...
  18. Arcgis属性表字段值批量替换
  19. 如何订到超便宜的机票
  20. 从one hot vector到Attention, Bert——NLP基本思想串连回顾

热门文章

  1. CentOS 7部署PHP项目
  2. 被命运之神眷顾的法拉第
  3. VBA 二维数组和字典
  4. 数据可视化实战——线条、颜色、背景、字体、标记、图例的设置与基本可视化图形的绘制
  5. select清除右侧的小三角
  6. Ae:内置效果(合集)
  7. Lanchester方程的离散模型及Python代码实现
  8. python三维重建代码_基于Python的三维重建开源代码
  9. 费尔顿被讽联盟最差 某高管:大学生都比他强
  10. 胜为蓝牙328linux,mac 安装usb 蓝牙适配器 胜为 shengwei UDC-324B