【组队赛三】—E Binary Search cf448D

Multiplication Table

Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u

Submit

Status

Practice

CodeForces 448D

Description

Bizon the Champion isn‘t just charming, he also is very smart.

While some of us were learning the multiplication table, Bizon the Champion had fun in his own manner. Bizon the Champion painted an n?×?m multiplication table, where the element on the intersection of the i-th row and j-th column equals i·j (the rows and columns
of the table are numbered starting from 1). Then he was asked: what number in the table is the k-th largest number? Bizon the Champion always answered correctly and immediately. Can you repeat his success?

Consider the given multiplication table. If you write out all n·m numbers from the table in the non-decreasing order, then the k-th number you write out is called the k-th largest number.

Input

The single line contains integers n, m and k(1?≤?n,?m?≤?5·105; 1?≤?k?≤?n·m).

Output

Print the k-th largest number in a n?×?m multiplication table.

Sample Input

Input

2 2 2

Output

2

Input

2 3 4

Output

3

Input

1 10 5

Output

5

Hint

A 2?×?3 multiplication table looks like this:

1 2 3

2 4 6

<span style="color:#3333ff;background-color: rgb(255, 255, 255);">/*
_______________________________________________________________________________________

       author    :   Grant yuan
       time      :   2014.7.21
       algorithm :   Binary Search
       explain   :   如果i*m<=aa,则会有m个数满足结果,否则会有aa/i个数满足结果
________________________________________________________________________________________
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<functional>
#define INF 999999999
using namespace std;

//long long a[100003][100003];
long long k;
long long l,r,mid;
long long n,m;
long long M;

inline bool can(long long aa)
{   long long sum=0;
    for(int i=1;i<=n;i++)
         {
             if(i*m<=aa)
                sum+=m;
             else sum+=aa/i;
         }
   if(sum>=k)
       return true;
   return false;
}

int main()
{   M=0;
    cin>>n>>m>>k;
        long long ans=1;
        l=1;r=n*m;
        while(l<=r){
            mid=(long long)((l+r)*0.5);
            if(can(mid))
            {  ans=mid;
                r=mid-1;
            }
            else
                l=mid+1;
        }
          cout<<ans<<endl;
}
</span>

【组队赛三】—E Binary Search cf448D,布布扣,bubuko.com

时间: 2024-10-19 17:48:01

【组队赛三】—E Binary Search cf448D的相关文章

Unique Binary Search Trees 三种解法 python

Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example,Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ / / / \ 3 2 1 1 3 2 / / \ 2 1 2 3 递归版,也是AC class Solution: @return an integer # 2014年

LeetCode99 Recover Binary Search Tree

Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. (Hard) Note:A solution using O(n) space is pretty straight forward. Could you devise a constant space solution? 分析: BST的中序遍历应该是递增的,我们考

九章算法系列(#2 Binary Search)-课堂笔记

前言 先说一些题外的东西吧.受到春跃大神的影响和启发,推荐了这个算法公开课给我,晚上睡觉前点开一看发现课还有两天要开始,本着要好好系统地学习一下算法,于是就爬起来拉上两个小伙伴组团报名了.今天听了第一节课,说真的很实用,特别是对于我这种算法不扎实,并且又想找工作,提高自己的情况. 那就不多说废话了,以后每周都写个总结吧,就趁着这一个月好好把算法提高一下.具体就从:课堂笔记.leetcode和lintcode相关习题.hdu和poj相关习题三个方面来写吧.希望自己能够坚持下来,给大家分享一些好的东

LeetCode之“动态规划”:Unique Binary Search Trees &amp;&amp; Unique Binary Search Trees II

1. Unique Binary Search Trees 题目链接 题目要求: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example, Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ / / / \ 3 2 1 1 3 2 / / \ 2 1 2 3 题目分析参考自一博

leetcode笔记:Validate Binary Search Tree

一. 题目描写叙述 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node's key. The right subtree of a node contains only nodes

[Lintcode] Validate Binary Search Tree

Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node's key. The right subtree of a node c

PAT Search in a Binary Search Tree

Search in a Binary Search Tree To search a key in a binary search tree, we start from the root and move all the way down, choosing branches according to the comparison results of the keys. The searching path corresponds to a sequence of keys. For exa

[LeetCode] Validate Binary Search Tree 验证二叉搜索树

Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node's key. The right subtree of a node contains only nodes with keys

Leetcode 255. Verify Preorder Sequence in Binary Search Tree

验证一个list是不是一个BST的preorder traversal sequence. Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree. You may assume each number in the sequence is unique. Follow up:Could you do it using only