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;
}