# 題目: UVa 10050 - Hartals

# 題目說明

題目給總天數及各個party的間隔天數
天數從禮拜天開始算,禮拜天為day 1
周五及周六不算
hartal的天數

例如:
天數N = 9party1 = 3party2 = 4

星期
天數 day1 day2 day3 day4 day5 day6 day7 day8
party1 o o o
party2 o o
hartal 1 2 3 4

hartal = 4


INPUT:
第一行為一個整數T,代表有幾筆資料
每筆資料第一行有兩個整數NP

  1. N代表天數
  2. P代表有Pparty
    接下來有P行,每行讀入一個整數代表這個party的間隔天數

OUTPUT:
輸出hartal的天數

# 解題方法

先將罷工的天數設為true
再把周五及周六設為false
最後算true的次數

# 參考程式碼

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int T, N, P, num;
	vector<bool> days;

	cin >> T;	
	while (T--)
	{
		cin >> N >> P;
		days.assign(N + 1, false);

		while (P--)
		{
			cin >> num;
			for (int i = num; i <= N; i += num) days[i] = true;
		}

		for (int i = 6; i <= N; i += 7) days[i] = days[i + 1] = false;

		int cnt = 0;
		for (int i = 1; i <= N; ++i) if (days[i]) ++cnt;
		cout << cnt << "\n";
	}

	return 0;
}