1.这题我想的是利用vector建立一个长度为n的动态数组,元素初始都为0;
2.然后进行m次循环,每次循环输入一个数(即窗口的数字),用n除以这个数,可以得到该数在n中有几个倍数
3.有几个倍数就进行几次循环,每次循环都将判断n中该数的倍数位置上的人是否被带走;未被带走,总人数-1(这里我定义了另一个变量等于n用来统计人数),被带走不进行操作开始下一次循环;(该循环,第几次循环就是该数的几倍进行判断)
```cpp
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector <int> _n(n);
int k=n;
while(m--)
{
int a;
cin>>a;
int i=n/a;
int x=1;
while(i--)
{
int y=a*x;
x++;
if(_n[y-1]==0)
{
_n[y-1]=1;
k--;
}
}
}
if(k<0)
{
k=0;
}
cout<<k;
return 0;
}