CF1731E.Graph Cost

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an initially empty undirected graph with nn nodes, numbered from 11 to nn (i. e. nn nodes and 00 edges). You want to add mm edges to the graph, so the graph won't contain any self-loop or multiple edges.

If an edge connecting two nodes uu and vv is added, its weight must be equal to the greatest common divisor of uu and vv , i. e. gcd(u,v)\gcd(u, v) .

In order to add edges to the graph, you can repeat the following process any number of times (possibly zero):

  • choose an integer k1k \ge 1 ;
  • add exactly kk edges to the graph, each having a weight equal to k+1k + 1 . Adding these kk edges costs k+1k + 1 in total.

Note that you can't create self-loops or multiple edges. Also, if you can't add kk edges of weight k+1k + 1 , you can't choose such kk .For example, if you can add 55 more edges to the graph of weight 66 , you may add them, and it will cost 66 for the whole pack of 55 edges. But if you can only add 44 edges of weight 66 to the graph, you can't perform this operation for k=5k = 5 .

Given two integers nn and mm , find the minimum total cost to form a graph of nn vertices and exactly mm edges using the operation above. If such a graph can't be constructed, output 1-1 .

Note that the final graph may consist of several connected components.

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt ( 1t1041 \leq t \leq 10^4 ). Description of the test cases follows.

The first line of each test case contains two integers nn and mm ( 2n1062 \leq n \leq 10^6 ; 1mn(n1)21 \leq m \leq \frac{n(n-1)}{2} ).

It is guaranteed that the sum of nn over all test cases does not exceed 10610^6 .

输出格式

For each test case, print the minimum cost to build the graph, or 1-1 if you can't build such a graph.

输入输出样例

  • 输入#1

    4
    4 1
    6 10
    9 4
    10 11

    输出#1

    2
    -1
    7
    21

说明/提示

In the first test case, we can add an edge between the vertices 22 and 44 with gcd=2\gcd = 2 . This is the only possible way to add 11 edge that will cost 22 .

In the second test case, there is no way to add 1010 edges, so the answer is 1-1 .

In the third test case, we can add the following edges:

  • k=1k = 1 : edge of weight 22 between vertices 22 and 44 ( gcd(2,4)=2\gcd(2, 4) = 2 ). Cost: 22 ;
  • k=1k = 1 : edge of weight 22 between vertices 44 and 66 ( gcd(4,6)=2\gcd(4, 6) = 2 ). Cost: 22 ;
  • k=2k = 2 : edges of weight 33 : (3,6)(3, 6) and (3,9)(3, 9) ( gcd(3,6)=gcd(3,9)=3\gcd(3, 6) = \gcd(3, 9) = 3 ). Cost: 33 .

As a result, we added 1+1+2=41 + 1 + 2 = 4 edges with total cost 2+2+3=72 + 2 + 3 = 7 , which is the minimal possible cost.

首页