CF1735A Working Week 题解

读题点 这里

题意简述

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

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

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

求最大的 min( l1l2 , l2l3 , l1l3 )\min(\ |l1-l2|\ ,\ |l2-l3|\ ,\ |l1-l3|\ )

思路分析

只有使休息日之间的间隔相等,才能使 min( l1l2 , l2l3 , l1l3 )\min(\ |l1-l2|\ ,\ |l2-l3|\ ,\ |l1-l3|\ ) 最大。故最大值为 (n6)÷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;
}