真的是了


私信TA

用户名:wofule66666

访问量:472

签 名:

等  级
排  名 14953
经  验 858
参赛次数 1
文章发表 4
年  龄 0
在职情况 学生
学  校 mmm
专  业

  自我简介:

TA的其他文章

解题思路:蚂蚁速度相同,感冒从最开始向两侧扩散

感冒蚂蚁两侧 向两侧走的蚂蚁都不会遇到感冒蚂蚁
感冒蚂蚁两侧 向感冒蚂蚁走的蚂蚁都会遇到感冒的蚂蚁
注意事项:

参考代码:

import java.util.Scanner;

public class Main {
   public static void main(String []args){
       Scanner scanner=new Scanner(System.in);
       int n=scanner.nextInt();
       int []a=new int[n];                //存放
       int s=n;                           //感冒蚂蚁
       int h=0;                           //标记
       for(int i=0;i<n;i++){
           a[i]=scanner.nextInt();
       }
       if(a[0]<0){ //感冒蚂蚁向左
           for(int i=1;i<n;i++){
               if(a[0]+a[i]>0) s--;        //感冒蚂蚁右侧向右蚂蚁没有感冒
               if(a[i]<0&&a[i]-a[0]>0) s--;//感冒蚂蚁左侧向左蚂蚁没有感冒
               if(a[i]>0&&a[0]+a[i]<0){    //当感冒蚂蚁左侧存在向右蚂蚁 剩余蚂蚁都感冒
                   s=s;
               }else {
                   h++;
                   if((h+1)==n) s=1;       //蚂蚁左侧没有向右蚂蚁  只有最初的蚂蚁感冒
               }
           }
       }
       if(a[0]>0){ //感冒蚂蚁向右
           h=0;
           for(int i=1;i<n;i++){
               if(a[i]<0&&a[0]+a[i]>0) s--;//感冒蚂蚁左侧向左蚂蚁没有感冒
               if(a[i]>a[0]) s--;          //感冒蚂蚁右侧向右蚂蚁没有感冒
               if(a[i]<0&&a[0]+a[i]<0){    //感冒蚂蚁右侧存在向左蚂蚁 剩余蚂蚁都感冒
                   s=s;
               }else {
                   h++;
                   if((h+1)==n) s=1;       //感冒蚂蚁右侧没有向左蚂蚁 只有最初蚂蚁感冒
               }
           }
       }
       System.out.println(s);
   }
}

 

0.0分

0 人评分

  评论区

  • «
  • »