A. Candies and Two Sisters
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
There are two sisters Alice and Betty. You have nn candies. You want to distribute these nn candies between two sisters in such a way that:
- Alice will get aa (a>0a>0) candies;
- Betty will get bb (b>0b>0) candies;
- each sister will get some integer number of candies;
- Alice will get a greater amount of candies than Betty (i.e. a>ba>b);
- all the candies will be given to one of two sisters (i.e. a+b=na+b=n).
Your task is to calculate the number of ways to distribute exactly nn candies between sisters in a way described above. Candies are indistinguishable.
Formally, find the number of ways to represent nn as the sum of n=a+bn=a+b, where aa and bb are positive integers and a>ba>b.
You have to answer tt independent test cases.
Input
The first line of the input contains one integer tt (1≤t≤1041≤t≤104) — the number of test cases. Then tt test cases follow.
The only line of a test case contains one integer nn (1≤n≤2⋅1091≤n≤2⋅109) — the number of candies you have.
Output
For each test case, print the answer — the number of ways to distribute exactly nn candies between two sisters in a way described in the problem statement. If there is no way to satisfy all the conditions, print 00.
Example
input
Copy
6 7 1 2 3 2000000000 763243547
output
Copy
3 0 0 1 999999999 381621773
Note
For the test case of the example, the 33 possible ways to distribute candies are:
- a=6a=6, b=1b=1;
- a=5a=5, b=2b=2;
- a=4a=4, b=3b=3.
解题说明:水题,n-1除以2即为分配的数目。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i, t, n, res;
scanf("%d", &t);
for (i = 0; i<t; i++)
{
scanf("%d", &n);
res = (n - 1) / 2;
printf("%d\n", res);
}
return 0;
}
上一篇: php封装表单验证类
下一篇: 模板匹配