问题标题: 酷町堂:4004路灯问题

0
0
已解决
汪恺恒
汪恺恒
中级启示者
中级启示者

在一条笔直的街道上,有n盏路灯,刚开始全部都处于熄灭的状态。每盏灯有自己的独立开关,为了检验灯的质量,管理员想出了一个有趣的方法,找若干个人按顺序一个一个地从街道的一侧进入,每个人看到亮着的灯就熄灭,直到看到第一盏关着的灯,将其点亮,完成任务。现在请你编写函数求出第m个人走过后,亮着的灯还有多少盏。

输入描述 Input Description

输入n和m,分别表示路灯数和经过的人数

输出描述 Output Description

输出最后还剩多少盏亮着灯

WA10

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,m,cnt; 
bool b[105]; 
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int s=0;
        for(int j=1;j<=n;j++){ 
            if(b[j]==0&&s==0){
                s++;
                b[j]=1;
                continue;
            }
            if(b[j]){
                b[j]=0;
            }
        }
    }
    for(int i=1;i<=n;i++){
        if(b[i]){
            cnt++;
        }
    }
    cout<<cnt;
    return 0;
}

 


0
已采纳
梁逸凡
梁逸凡
资深守护
资深守护

循环内改成

if(a[j]==1){
                a[j]=2;
                break;
            }
            if(a[j]==2){
                a[j]=1;
            }

 

0
我要回答