MightyHorse is playing a music game called osu!.ui
After playing for several months, MightyHorse discovered the way of calculating score in osu!:spa
1. While playing osu!, player need to click some circles following the rhythm. Each time a player clicks, it will have three different points: 300, 100 and 50, deciding by how clicking timing fits the music.rest
2. Calculating the score is quite simple. Each time player clicks and gets P points, the total score will add P, which should be calculated according to following formula:code
Here Point is the point the player gets (300, 100 or 50) and Combo is the number of consecutive circles the player gets points previously - That means if the player doesn't miss any circle and clicks the ith circle, Combo should be i - 1.orm
Recently MightyHorse meets a high-end osu! player. After watching his replay, MightyHorse finds that the game is very hard to play. But he is more interested in another problem: What's the maximum and minimum total score a player can get if he only knows the number of 300, 100 and 50 points the player gets in one play?blog
As the high-end player plays so well, we can assume that he won't miss any circle while playing osu!; Thus he can get at least 50 point for a circle.three
There are multiple test cases.ip
The first line of input is an integer T (1 ≤ T ≤ 100), indicating the number of test cases.ci
For each test case, there is only one line contains three integers: A (0 ≤ A ≤ 500) - the number of 300 point he gets, B (0 ≤ B ≤ 500) - the number of 100 point he gets and C (0 ≤ C ≤ 500) - the number of 50 point he gets.get
For each test case, output a line contains two integers, describing the minimum and maximum total score the player can get.
1 2 1 1
2050 3950
Author: DAI, Longao
Contest: The 10th Zhejiang Provincial Collegiate Programming Contest
1 #include <cstdio> 2 using namespace std; 3 4 int main() 5 { 6 int ca, a, b, c,min,max,com; 7 scanf("%d", &ca); 8 while (ca--) 9 { 10 scanf("%d%d%d", &a, &b, &c); 11 min = max = 0; com = 0; 12 for (int i = 0; i < a; i++, com++) 13 min += 300 * (com * 2 + 1); 14 for (int i = 0; i < b; i++, com++) 15 min += 100 * (com * 2 + 1); 16 for (int i = 0; i < c; i++, com++) 17 min += 50 * (com * 2 + 1); 18 com = 0; 19 for (int i = 0; i < c; i++, com++) 20 max += 50 * (com * 2 + 1); 21 for (int i = 0; i < b; i++, com++) 22 max += 100 * (com * 2 + 1); 23 for (int i = 0; i < a; i++, com++) 24 max += 300 * (com * 2 + 1); 25 printf("%d %d\n", min,max); 26 } 27 }