CF1735A Working Week 题解

读题点 这里

题意简述

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

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

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

求最大的 $\min(\ |l1-l2|\ ,\ |l2-l3|\ ,\ |l1-l3|\ )$。

思路分析

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