【CodeForces 628A】Tennis Tournament(水题)
来源:互联网 发布:protobuf 数组 编辑:程序博客网 时间:2024/06/15 07:48
Description
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.
Sample Input
Input
5 2 3
Output
20 15
Input
8 2 4
Output
35 32
Hint
In the first example will be three rounds:
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),
in the second round will be only one match, so we need another 5 bottles of water,
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个参赛队员,每次选择k(k<=m其中k是2的幂次数)个人进行k/2场比赛,每场比赛有两个参赛选手,而且没有平局,输者被淘汰,这样直到只剩下一人比赛结束。每场比赛需要给每个选手b瓶水以及裁判一瓶水,且到比赛结束需要给选手提供p个毛巾。问需要准备多少瓶水和多少条毛巾。
思路
水题
代码
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int main(){ int n,b,p,x,y; while(~scanf("%d %d %d",&n,&b,&p)) { x=0; y=n*p; while(n>1) { if(n%2) { x+=b*2; x++; n--; } else { x+=(n*b); n/=2; x+=n; } } printf("%d %d\n",x,y); } return 0;}
- 【CodeForces 628A】Tennis Tournament(水题)
- Codeforces 628A Tennis Tournament 【水题】
- CodeForces 628 A. Tennis Tournament(水~)
- Codeforces 628A Tennis Tournament
- CodeForces 628A Tennis Tournament
- CodeForces 628A Tennis Tournament
- CodeForces 628A Tennis Tournament
- CodeForces 628A Tennis Tournament
- CodeForces 628A Tennis Tournament(比赛送水递毛巾问题)
- 628A. Tennis Tournament
- A. Tennis Tournament
- Codeforces Educational Codeforces Round 8 A. Tennis Tournament
- Codeforces 283E Cow Tennis Tournament (扫描线+计数)
- CF283E Cow Tennis Tournament
- CodeForces 356A Knight Tournament 【线段树】
- CSA Round #41 Tennis Tournament
- CodeForces 356A - Knight Tournament set or 线段树
- Codeforces 356A Knight Tournament线段树区间覆盖
- Linux命令汇总
- iOS 系统应用调用: 电话、短信息、邮件
- 禁掉UITextField的粘贴功能
- php接口接收发送数据(json)
- linux中的热插拔和mdev机制
- 【CodeForces 628A】Tennis Tournament(水题)
- Butterknife 简单使用
- struts2+json 配置
- sublime text3安装SublimeREPL,并配置python交互式终端快捷键
- Android:6.0运行时权限解析
- nginx页面加载不全或提示502bad gateway,nginx反向代理端口号丢失
- 利用log4j进行日志输出
- pam密码复杂度设置
- C 语言 实现的socket 通信