FNS - Tìm số trong ma trận

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 0.005s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Một ma trận zig~-~zag số vô hạn là một lưới hình vuông có giá trị phía trên bên trái là 1, các phần tử tiếp theo sẽ tăng dần và đi thao một hình zig-zag cho tới cuối.

Bảng zig~-~zag ~5*5~ có dạng như sau:

codelearn-1.png

Nhiệm vụ của bạn là: tìm ra số tại vị trí dòng ~x~ và cột ~y~

Input

Dòng đầu chứa số nguyên dương ~T (1 \le T \le 100)~ là số lượng câu hỏi;

~T~ dòng tiếp theo, dòng thứ ~i~ là câu hỏi ~i~ có ~2~ số nguyên dương ~x, y (1 \le x, y \le 10^7)~.

Output

Ghi ra trên ~T~ dòng, dòng thứ ~i~ là đáp án câu hỏi ~i~, ghi số ở dòng ~x~, cột ~y~ của ma trận nêu trên.

Sample

Input #1
2
2 3
99 99
Output #1
8
9703

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    Thanhmay2005  đã bình luận lúc 7, Tháng 3, 2024, 15:02

    mình góp vui

    mình chia ra 3 trường hợp:

    • Đường chéo (y=x)
    • Khi y>x
    • Khi x>y

    khi y=x:

    • ans = (y*y)-(y-1)

    khi y>x :

    • khi y là số lẻ ans = (y*y)-(y-1) - (y-x)
    • khi y là số chẵn ans = (y*y)-(y-1) + (y-x)

    khi x>y:

    • khi x là số lẻ ans = (x*x)-(x-1) + (x-y)
    • khi x là số chẵn ans = (x*x)-(x-1) - (x-y)

  • 0
    Thanhmay2005  đã bình luận lúc 7, Tháng 3, 2024, 1:15

    include <iostream>

    include <math.h>

    include <stdio.h>

    include <string.h>

    define ll long long

    define ull unsigned long long

    using namespace std;

    int main () { int t; cin>>t; while (t--) { ll y,x , ans; cin>>y>>x; if (y==x) { ans=yy - (y-1); } else { if (y>x) { if (y%2!=0) { ans = ((yy)-(y-1)) - (y-x); } else { ans = ((yy)-(y-1)) + (y-x); } } else { if (x%2!=0) { ans = ((xx)-(x-1)) + (x-y); } else { ans = ((x*x)-(x-1)) - (x-y); } } } cout<<ans<<"\n"; } }


  • 0
    yukino  đã bình luận lúc 24, Tháng 11, 2023, 16:26 chỉnh sửa

    //deleted cmt