Các hình chữ nhật có cùng chu vi
Cho số nguyên dương \(N\). Hãy tìm và in ra diện tích của tất cả các hình chữ nhật có chu vi \(N\) và có độ dài các cạnh là nguyên dương.
Dữ liệu vào:
- Dòng đầu tiên chứa số nguyên \(T\) là số bộ dữ liệu, tiếp theo là \(T\) bộ dữ liệu, mỗi bộ dữ liệu gồm một dòng chứa một số nguyên dương \(N\).
Ràng buộc:
- \(0 < T \leq 100; 1 < N \leq 10^4\)
Kết quả
- Ứng với mỗi bộ dữ liệu vào, in ra một dòng chứa các số đo diện tích của các hình chữ nhật khác nhau có chu vi N. Các giá trị diện tích cần được in theo trật tự tăng dần và chỉ in các giá trị khác nhau. Nếu không tìm được hình chữ nhật nào thỏa mãn thì chỉ in ra một dòng với sô -1.
Ví dụ:
INPUT
3
5
2
10
OUTPUT
-1
-1
4 6
Comments
có cách nào để ko bị TLE ko :(
include <bits/stdc++.h>
using namespace std; void solve(int n) { set<int> area; if (n % 2 != 0) {cout << "-1\n"; return;} n = n / 2; for (int i = 1; i < n; i++) area.insert(i(n - i)); if (area.empty()) {cout << "-1\n"; return;} set<int, less<int>>::iterator iter; for (iter = area.begin(); iter != area.end(); iter++) cout << iter << ' '; cout << '\n'; return; } int main() { int t,n; cin >> t; while (t--) { cin >> n; solve(n); } return 0; }