「MXOI Round 2」酒店
题目描述
小 C 开了一家酒店,叫做 CC Hotel。
一天,CC Hotel 来了 n n n 位客人。小 C 需要把他们都安排在酒店的某一层中。每个房间中只能安排一位客人。
这一层共有 m m m 间房间,这 m m m 间房间都是空的,且这 m m m 间房间形成了一个环形,即对于所有的 1 ≤ x ≤ m 1 \le x \le m 1≤x≤m,都有第 x x x 间房间与第 ( ( x m o d m ) + 1 ) ((x \bmod m)+1) ((xmodm)+1) 间房间相邻,第 ( ( x m o d m ) + 1 ) ((x \bmod m)+1) ((xmodm)+1) 间房间与第 x x x 间房间相邻,其中 x m o d m x \bmod m xmodm 表示 x x x 除以 m m m 得到的余数。
这 n n n 位客人都十分挑剔,他们希望与自己的房间相邻的房间中没有人。对于某一位客人,若与他的房间相邻的房间中,有 k k k 间房间有人,则这位客人会产生 k k k 点愤怒值。
你需要帮助小 C 安排房间,使得所有客人的愤怒值之和最小,并输出所有客人的愤怒值之和的最小值。
输入格式
两个整数 n , m n,m n,m。
输出格式
一个整数,表示所有客人的愤怒值之和的最小值。
样例 #1
样例输入 #1
3 5
样例输出 #1
2
样例 #2
样例输入 #2
1 4
样例输出 #2
0
提示
【样例解释 #1】
对于这 5 5 5 间房间,其中一组满足条件的安排方案为:不住人、住人、住人、不住人、住人。
可以证明所有客人的愤怒值之和的最小值为 2 2 2。
【数据范围】
对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 100 1 \le n \le 100 1≤n≤100, 3 ≤ m ≤ 100 3 \le m \le 100 3≤m≤100,保证 n ≤ m n \le m n≤m。
测试点编号 | 特殊性质 |
---|---|
1 ∼ 3 1\sim3 1∼3 | 保证 2 n ≤ m 2n\le m 2n≤m |
4 ∼ 6 4\sim6 4∼6 | 保证 m = n + 1 m=n+1 m=n+1 |
7 ∼ 10 7\sim10 7∼10 | 无 |
C++实现
#include
using namespace std;
int main() {
int n,m,ans=0;
cin>>n>>m;
if(2n<=m){
ans = 0;
}else{
ans = 4n-2*m;
}
cout<<"----------------------分割线---"<<endl;
cout<<ans;
return 0;
}
后续
接下来我会不断用C++来实现信奥比赛中的算法题、GESP C++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容