Codeforces Round #411 (Div. 2)C. Find Amir(想法题)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #411 (Div. 2)C. Find Amir(想法题)相关的知识,希望对你有一定的参考价值。
Description
A few years ago Sajjad left his school and register to another one due to security reasons. Now he wishes to find Amir, one of his schoolmates and good friends.
There are n schools numerated from 1 to n. One can travel between each pair of them, to do so, he needs to buy a ticket. The ticker between schools i and j costs and can be used multiple times. Help Sajjad to find the minimum cost he needs to pay for tickets to visit all schools. He can start and finish in any school.
Input
The first line contains a single integer n (1 ≤ n ≤ 105) — the number of schools.
Output
Print single integer: the minimum cost of tickets needed to visit all schools.
Sample Input
2
10
Sample Output
0
4
Note
In the first example we can buy a ticket between the schools that costs .
思路
题解:因为从学校 i 到学校 j 花费为 ,因此尽量使1与n搭配,2与n - 1搭配,那么接下来要解决的就是联通这些搭配。从样例我们可以写出如下:
1 2 3 4 5
10 9 8 7 6
那么我们就可以从10到2,9到3,8到4...每次花费为1。按照这种策略可使最后结果最小。
#include<bits/stdc++.h> using namespace std; int main() { int n; scanf("%d",&n); if (n % 2 == 0) { printf("%d\n",n/2-1); } else printf("%d\n",n/2); return 0; }
以上是关于Codeforces Round #411 (Div. 2)C. Find Amir(想法题)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #411 (Div. 2)
Codeforces Round #411 (Div. 2)C. Find Amir(想法题)
Codeforces Round #411 (Div. 2)D. Minimum number of steps(贪心)
Codeforces Round #436 E. Fire(背包dp+输出路径)