蚂蚁感冒

这题主要是将题目中容易迷惑的条件转化为易于做题的条件,题中说当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行,可以转化为两只蚂蚁相遇后继续沿原方向前进。
这样就很容易得出,当第一只蚂蚁向右运动时,所有在它右边向左运动的蚂蚁都会感冒,并且在第一只蚂蚁后面向右运动的蚂蚁也会感冒。
同理,当第一只蚂蚁向左运动时,所有在它左边向右运动的蚂蚁和在它后面向左运动的蚂蚁都会感冒。
#include<iostream>
using namespace std;
int main()
{
    int t, l=0,r=0;
    cin>>t;
    int n[t];
    for(int i=0;i<t;i++){
        cin>>n[i];
        if(n[i]<0&&i!=0&&n[i]<n[0])l++;
        if(n[i]>0&&i!=0&&n[i]<n[0])r++;
    }
    int ans=1;
    if(n[0]>0){
    for(int i=1;i<t;i++)
    {
        if(n[0]<abs(n[i])&&n[i]<0)ans++;
    }
        if(ans!=1)ans+=r;
        
    }
    else {
        for(int i=1;i<t;i++)
        {
            if(abs(n[0])>n[i]&&n[i]>0)ans++;
        }
        if(ans!=1)ans+=l;
    }
    cout<<ans;
}



全部评论

相关推荐

05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务