Bảng nhân

View as PDF



Time limit:
Scratch 5.0s

Author:
Problem types
Allowed languages
C#, C++, Clang, Clang++, Cobol, D, Groovy, Haskell, Java, JS, Kotlin, Lua, Node JS, ObjectiveC, OCaml, Output, Pascal, PHP, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Points: 300 (p) Time limit: 1.1s Memory limit: 256M Input: stdin Output: stdout

Cho một ma trận các số nguyên gồm \(n\) dòng \(m\) cột. Các dòng được đánh số từ \(1\) đến \(n\) từ trên xuống dưới. Các cột được đánh số từ \(1\) đến \(m\) từ trái qua phải. Giá trị của số nguyên tại dòng \(i\) cột \(j\) là phép nhân \(i\times j\). Lấy tất cả các số trong ma trận và sắp xếp tăng dần. Hãy tìm số nguyên thứ k trong dãy đã sắp xếp.

Input

  • Là ba số nguyên \(n, m, k\) cách nhau một khoảng trắng \((1 \leq n, m \leq 1000; 1 \leq k \leq n*m)\).

Output

  • Là số nguyên thứ \(k\) sau khi sắp xếp các số trong ma trận.

Example

Test 1

Input
2 3 4 
Output
3

Test 2

Input
3 4 6 
Output
4
Note

Trong test 1:

1 2 3

2 4 6

Các số sau khi sắp xếp 1 2 2 3 4 6 => Số thứ 4 là 3.


Comments

  • khoinguyen67803 10:29 a.m. 12 jan, 2025

    include<bits/stdc++.h>

    define N 1123456

    using namespace std;
    long long b,c,d,n,k,m,i,j,a[N],t,s;
    int main()
    {
    freopen("a.inp","r",stdin);
    freopen("a.out","w",stdout);
    ios_base::sync_with_stdio(0);
    cin>>n>>m>>k;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    {
    d++;a[d]=ij;
    }
    n=n
    m;
    sort(a+1,a+1+n);
    cout<<a[k];

    c++

    • minhtuanitk20 8:38 a.m. 10 oct, 2021

      khét ta

      • thich_viet_editor 4:39 p.m. 5 aug, 2020 edited

        HINT

        đề chuẩn:http://lequydon.ntucoder.net/Problem/Details/4765

        Ý TƯỞNG:ta tạo mảng \(a[]\) nhằm lưu lại các giá trị \(i*j\) (\(i\)=\(1→n, j\)=\(1→m\)), sau đó sắp xếp lại mảng rồi in ra phần tử thứ k

        reference AC CODE | **\(O(n*m)\)time | \(O(n*m)\)space | Sorting,Greedy**

        int main()
        {
            ios_base::sync_with_stdio(0);
            cin >> n >> m >> k;
            for(i=1;i<=m;i++)
            {
                for(j=1;j<=n;j++)
                {
                    a[++mn]=i*j;
                }
            }
            sort(a+1,a+1+mn);
            cout<<a[k];
        }