Hình vuông

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
Python, Scratch

Bác Tư là một người thợ lát gạch nổi tiếng. Một hôm, bác nhận được đơn đặt hàng đặc biệt từ trường học trong làng: lát một sân chơi hình vuông thật đẹp để các em học sinh có chỗ vui chơi.

Bác Tư này ra một ý tưởng độc đáo: lát gạch thành từng lớp hình vuông đồng tâm - lớp ngoài to, rồi lớp nhỏ dần vào giữa, và cứ cách một lớp thì đổi màu. Để tạo điểm nhấn, bác quyết định bắt đầu từ lớp ngoài cùng là gạch màu xanh, rồi xen kẽ với gạch trắng, cứ thể vào đến lớp trung tâm. Sân chơi được chia thành những ô vuông nhỏ bằng nhau, tạo thành một hình vuông lớn có kích thước ~N \times N~, trong đó ~N~ là số lẻ để có thể lát đến đúng ô trung tâm.

Yêu cầu: Biết rằng bác Tư đã lát gạch theo đúng ý tưởng như trên (như hình vẽ), em hãy giúp bác:

  • Tính số ô được lát bằng gạch màu.
  • Tính số ô còn lại là gạch trắng.
Input
  • Một số nguyên lẻ ~N~ ~(3 ≤ N ≤ 10^8)~.
Output
  • Một dòng gồm hai số là số ô gạch trắng và số ô gạch màu.
Sample Input 1
3
Sample Output 1
1 8
Note
  • Với ~N = 3~ số ô gạch trắng là ~1~, số ô gạch màu là ~8~.
Sample Input 2
9
Sample Output 2
32 49
Note
  • Với ~N = 9~ số ô gạch trắng là ~32~, số ô gạch màu là ~49~.

Bình luận

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



  • -1
    Le_Kiet15  đã bình luận lúc 24, Tháng 4, 2025, 13:01

    Code python ngắn nhưng không đúng hết:

    n=int(input())
    t=0
    dau=1
    t_so=n*n
    while n>0:
        t+=n**2*dau
        n-=2
        dau*=-1
    mau=t
    trang=t_so-mau
    print(trang, mau)
    

  • -4
    NahImNotBtBro  đã bình luận lúc 23, Tháng 4, 2025, 13:23

    N = int(input()) k = (N + 1) // 2

    evenlayers = (k + 1) // 2 oddlayers = k // 2

    firsteven = N - 1 lasteven = N - 1 - 4 * (evenlayers - 1) sumeven = evenlayers * (firsteven + lasteven) // 2 mau = 4 * sumeven

    firstodd = N - 3 lastodd = N - 3 - 4 * (oddlayers - 1) sumodd = oddlayers * (firstodd + lastodd) // 2 trang = 4 * sumodd

    if N % 4 == 1: mau += 1 else: trang += 1

    print(trang, mau)


  • -5
    baohoa200  đã bình luận lúc 23, Tháng 4, 2025, 13:19

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -6
    baohoa200  đã bình luận lúc 23, Tháng 4, 2025, 13:18

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.