# Codeforces CF#628 Education 8 A. Tennis Tournament

A. Tennis Tournament
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

A tennis tournament with n participants is running. The participants are playing by an olympic system, so the winners move on and the losers drop out.

The tournament takes place in the following way (below, m is the number of the participants of the current round):

• let k be the maximal power of the number 2 such that k ≤ m,
• k participants compete in the current round and a half of them passes to the next round, the other m - k participants pass to the next round directly,
• when only one participant remains, the tournament finishes.

Each match requires b bottles of water for each participant and one bottle for the judge. Besides p towels are given to each participant for the whole tournament.

Find the number of bottles and towels needed for the tournament.

Note that it's a tennis tournament so in each match two participants compete (one of them will win and the other will lose).

Input

The only line contains three integers n, b, p (1 ≤ n, b, p ≤ 500) — the number of participants and the parameters described in the problem statement.

Output

Print two integers x and y — the number of bottles and towels need for the tournament.

Examples
input
5 2 3
output
20 15
input
8 2 4
output
35 32
Note

In the first example will be three rounds:

1. in the first round will be two matches and for each match 5 bottles of water are needed (two for each of the participants and one for the judge),
2. in the second round will be only one match, so we need another 5 bottles of water,
3. in the third round will also be only one match, so we need another 5 bottles of water.

So in total we need 20 bottles of water.

In the second example no participant will move on to some round directly.

题意：
有n个人两两对决，每场对决有一个裁判。
每个选手每次参加比赛需要b瓶水，并且裁判需要一瓶。并且选手各需要毛巾p条。
（题意没有明说，需要瞎猜）每个人的毛巾可以循环使用，每个人从比赛到结束都只需要p条毛巾。
问总共需要的水和毛巾数量。


题解：
直接模拟每轮比赛即可。


 1 #include <iostream>
2 #include <algorithm>
3 #include <cstdio>
4 using namespace std;
5
6 int n, b, p;
7
8 int main() {
9     scanf("%d%d%d", &n, &b, &p);
10     int bottles = 0, towels = n * p;
11     while(n > 1) {
12         int k = 2;
13         while(k * 2 <= n) k <<= 1;
14         int m = n - k + k / 2;
15         int matches = k / 2;
16         bottles += matches * (2 * b + 1);
17         n = m;
18     }
19     printf("%d %d\n", bottles, towels);
20     return 0;
21 }
View Code

posted @ 2016-12-02 11:56  yanzx6  阅读(220)  评论(0编辑  收藏  举报