C - Ideal Holidays
https://atcoder.jp/contests/abc347/tasks/abc347_c
思路
將所有延遲計劃時間 % a+b 對映到 區間 [0, a+b]
然後對對映陣列排序,
統計最大間距(最大間距可以被安排到 工作日 b),
如果最大間距 大於 b, 則所有延遲計劃可以被安排到 假期
Code
int n, a, b; vector<int> d; int main() { cin >> n >> a >> b; int modula = a+b; for(int i=0; i<n; i++){ int temp; cin >> temp; temp %= modula; d.push_back(temp); } sort(d.begin(), d.end()); int maxseg = -1; for(int i=1; i<d.size(); i++){ maxseg = max(maxseg, d[i]-d[i-1]-1); } maxseg = max(maxseg, (a+b - d[d.size()-1] + d[0]-1)); if (maxseg >= b){ cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }