CF1735A Working Week 题解

读题点 这里

题意简述

假设一周有 nn 天,第 nn 天的下一天是第 11 天,有三天休息,其中第 nn 天一定休息。现需要安排剩下的两个休息日,要求:

  • 不能使得休息日相邻,很明显第 11 天不能作为休息日。

  • 这两个休息日将 n−1n-1 天分成三段,记每段天数分别为 l1,l2,l3l1,l2,l3。

求最大的 min⁡( ∣l1−l2∣ , ∣l2−l3∣ , ∣l1−l3∣ )\min(\ |l1-l2|\ ,\ |l2-l3|\ ,\ |l1-l3|\ )。

思路分析

只有使休息日之间的间隔相等,才能使 min⁡( ∣l1−l2∣ , ∣l2−l3∣ , ∣l1−l3∣ )\min(\ |l1-l2|\ ,\ |l2-l3|\ ,\ |l1-l3|\ ) 最大。故最大值为 (n−6)÷3(n-6) \div 3。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<bits/stdc++.h>
using namespace std;

int T,n;

int main(){
cin>>T;
while(T--){
cin>>n;
cout<<(n-6)/3<<endl;
}
//system("pause");
return 0;
}