CF818F.Level Generation
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Ivan is developing his own computer game. Now he tries to create some levels for his game. But firstly for each level he needs to draw a graph representing the structure of the level.
Ivan decided that there should be exactly ni vertices in the graph representing level i , and the edges have to be bidirectional. When constructing the graph, Ivan is interested in special edges called bridges. An edge between two vertices u and v is called a bridge if this edge belongs to every path between u and v (and these vertices will belong to different connected components if we delete this edge). For each level Ivan wants to construct a graph where at least half of the edges are bridges. He also wants to maximize the number of edges in each constructed graph.
So the task Ivan gave you is: given q numbers n1,n2,...,nq , for each i tell the maximum number of edges in a graph with ni vertices, if at least half of the edges are bridges. Note that the graphs cannot contain multiple edges or self-loops.
输入格式
The first line of input file contains a positive integer q ( 1<=q<=100000 ) — the number of graphs Ivan needs to construct.
Then q lines follow, i -th line contains one positive integer ni ( 1<=ni<=2⋅109 ) — the number of vertices in i -th graph.
Note that in hacks you have to use q=1 .
输出格式
Output q numbers, i -th of them must be equal to the maximum number of edges in i -th graph.
输入输出样例
输入#1
3 3 4 6
输出#1
2 3 6
说明/提示
In the first example it is possible to construct these graphs:
- 1−2 , 1−3 ;
- 1−2 , 1−3 , 2−4 ;
- 1−2 , 1−3 , 2−3 , 1−4 , 2−5 , 3−6 .