time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Monocarp always starts his morning with a good ol' sandwich. Sandwiches Monocarp makes always consist of bread, cheese and/or ham.
A sandwich always follows the formula:
So it always has bread on top and at the bottom, and it alternates between bread and filling, where filling is a slice of either cheese or ham. Each piece of bread and each slice of cheese or ham is called a layer.
Today Monocarp woke up and discovered that he has b� pieces of bread, c� slices of cheese and hℎ slices of ham. What is the maximum number of layers his morning sandwich can have?
Input
The first line contains a single integer t� (1≤t≤10001≤�≤1000) — the number of testcases.
Each testcase consists of three integers b,c�,� and hℎ (2≤b≤1002≤�≤100; 1≤c,h≤1001≤�,ℎ≤100) — the number of pieces of bread, slices of cheese and slices of ham, respectively.
Output
For each testcase, print a single integer — the maximum number of layers Monocarp's morning sandwich can have.
Example
input
Copy
3
2 1 1
10 1 2
3 7 8
output
Copy
3 7 5
Note
In the first testcase, Monocarp can arrange a sandwich with three layers: either a piece of bread, a slice of cheese and another piece of bread, or a piece of bread, a slice of ham and another piece of bread.
In the second testcase, Monocarp has a lot of bread, but not too much filling. He can arrange a sandwich with four pieces of bread, one slice of cheese and two slices of ham.
In the third testcase, it's the opposite — Monocarp has a lot of filling, but not too much bread. He can arrange a sandwich with three pieces of bread and two slices of cheese, for example.
解题说明:此题是一道模拟题,按照题目意思做三明治,比较面包的个数和两种夹心的个数即可。
- #include
- int t;
- int b, c, h;
- int main()
- {
- scanf("%d", &t);
- for (int i = 0; i < t; i++)
- {
- scanf("%d%d%d", &b, &c, &h);
- if (b <= c + h)
- {
- printf("%d\n", b + (b - 1));
- }
- else
- {
- printf("%d\n", (c + h) + (c + h + 1));
- }
- }
- return 0;
- }