UVA 10050-Hartals
题目大意:输入样例数,输入连续天数,输入几组工人,输入工人罢工时间(在这个时间或时间倍数上工人可以罢工),周六周日罢工也没用,所以不罢工。输出在连续天数内的罢工天数
解题思路:模拟,当天数n+1%7==0或者天数n%7 == 0时为周六周日
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int re[10000];
while(n--) {
memset(re, 0, sizeof(re));
int m, day;
cin >> day;
cin >> m;
while(m--) {
int a;
cin >> a;
for(int i = a; i <= day; i = i + a) {
if((i+1) % 7 != 0 && i % 7 != 0 )
re[i] = 1;
}
}
int sum = 0;
for(int i = 1; i <= day; i++) {
if(re[i] == 1)
sum++;
}
cout << sum << endl;
}
return 0;
}