zoukankan      html  css  js  c++  java
  • 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<stdio.h>
    #include<string.h>
    int main()
    {
     int a[100010],b[100010];
     int n;
     while(scanf("%d",&n)!=EOF)
     {
      for(int i=0;i<n;i++)
      {
       scanf("%d %d",&a[i],&b[i]);
      }
      int sum1=0,sum2=0,temp=1;
      int max1,max2;
      for(int i=0;i<n;i++)
      {
       if(b[i])
       {
        if(temp)
        {
        max1=a[i];
        temp=0;
           }
          else
          {
           if(a[i]>max1)
           max1=a[i];
          }
       }
       else
       {
        if(temp)
        sum1++;
        else
        {
         if(a[i]>max1)
         {
          sum1++;
          temp=1;
         }
        }
       }
      }
       sum2=0;temp=1;
      
       for(int j=n-1;j>=0;j--)
       {
        if(!b[j])
        {
         if(temp)
         {
          max2=a[j];
          temp=0;
         }
         else
         {
          if(a[j]>max2)
           max2=a[j];
         }
         }
         else
         {
         if(temp)
         sum2++;
          else
          {
           if(a[j]>max2)
           {
            sum2++;
            temp=1;
           }
          }
         }
        }
       printf("%d",sum1+sum2);
      }
      return 0;
     }
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    git
    fragment
    Builder模式
    代码混淆
    android studio快捷键
    小知识点
    angular组件使用
    英语摘要2019-6-4
    英语笔记2019-4-3
    搭建Eureka注册中心时遇到的问题
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580220.html
Copyright © 2011-2022 走看看