TLEoj Contest #01 - Cắt bánh

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Có một chiếc bánh hình tròn. Cậu thực hiện \(k\) lần cắt, tất cả các đường cắt đều không trùng nhau và đi qua tâm của chiếc bánh. Hỏi sau khi cắt chiếc bánh được chia thành bao nhiêu phần.

Input

  • Dòng đầu tiên gồm số nguyên dương \(q\) là số truy vấn trong bộ test (\(q \le 10^6\)).
  • Dòng tiếp theo gồm \(q\) số tự nhiên, số tự nhiên thứ \(i\)\(k_i\) (\(k_i \le 10^9\)).

Output

  • In ra \(q\) số nguyên cách nhau một dấu cách. Số nguyên thứ \(i\) mô tả kết quả của truy vấn: nếu cắt chiếc bánh \(k_i\) lần thì chiếc bánh được chia thành bao nhiêu phần. Vì kết quả có thể rất lớn nên bạn chỉ cần in ra phần dư của kết quả khi chia cho \(10^9 + 7\).

Example

Test 1

Input
2
1 2
Output
2 4
Note
  • Khi cắt chiếc bánh lần đầu tiên, chiếc bánh được chia thành \(2\) phần.
  • Khi cắt chiếc bánh lần thứ hai, chiếc bánh được chia thành \(4\) phần.

Scoring

  • Subtask 1 (\(60\%\)): \(k_i \le 1000\), \(q \le 1000\).
  • Subtask 2 (\(40\%\)): \(1000 < k_i \le 10^9\), \(q \le 10^6\).

Bình luận (1)

Mới nhất
Tải bình luận...