testc1

Time limit: 1.0 / Memory limit: 256M

Point: 50

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài


Tổng toàn bộ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho dãy số nguyên a gồm n phần tử. Hãy tính tổng của |aiaj| với mọi cặp (i,j) thỏa mãn 1i<jn.

Input

  • Dòng đầu gồm 1 số nguyên n (1n105).
  • Dòng sau gồm n số nguyên miêu tả dãy a (|ai|106)

Output

  • In ra kết quả tìm được.

Sample Test

Input

Copy
3
5 1 2

Output

Copy
8

guessds

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho một loại cấu trúc dữ liệu dạng tập hợp hỗ trợ hai thao tác sau:

  • 1 x: Thêm phần tử x vào tập.
  • 2: Bỏ một phần tử ra khỏi tập.

Cấu trúc dữ liệu trên có thể thuộc một trong ba dạng: stack, queuepriority_queue. Cho trước các thao tác và kết quả trả về của thao tác đó, nhiệm vụ của bạn là phân loại cấu trúc dữ liệu trên.

Input

Input gồm nhiều bộ test. Mỗi bộ test gồm:

  • Dòng đầu tiên chứa số nguyên dương n là số lượng thao tác.
  • n dòng sau, mỗi dòng chứa một trong hai thao tác:
    • 1 x: Thêm x vào trong tập.
    • 2 x: Bỏ một phần tử ra khỏi tập, x là kết quả mà thao tác này trả về.

Input được kết thúc bằng EOF (end-of-file). Input đảm bảo tổng n trong tất cả các test không quá 2×105.

Output

  • Với mỗi bộ test, in ra trên một kết quả theo cú pháp sau:
    • stack: Nếu cấu trúc dữ liệu ban đầu là stack.
    • queue: Nếu cấu trúc dữ liệu ban đầu là queue.
    • priority_queue: Nếu cấu trúc dữ liệu ban đầu là priority_queue.
    • not sure: Nếu cấu trúc dữ liệu ban đầu có thể là ít nhất hai trong ba cấu trúc dữ liệu trên.
    • impossible: Không cái nào trong ba cấu trúc dữ liệu trên là cấu trúc dữ liệu ban đầu.

Sample Input

Copy
3
1 6
2 1
1 1
4
1 4
1 1
2 1
2 4
4
1 1
1 7
2 1
2 7
4
1 8
1 9
1 7
2 9
3
1 1
2 1
1 6

Sample Output

Copy
impossible
stack
queue
priority queue
not sure

goodseqq

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho một dãy số nguyên dương a gồm n phần tử. Một dãy được gọi là dãy tốt nếu với mọi số nguyên dương x mà có trong dãy a, x xuất hiện trong dãy a đúng x lần. Hãy xóa đi ít phần tử nhất để a trở thành dãy tốt.

Input

  • Dòng đầu tiên gồm số nguyên dương n (1n105).
  • Dòng sau chứa n số nguyên dương a1,a2,,an (1ai109).

Output

  • In ra một số nguyên duy nhất là số phần tử ít nhất cần phải xóa đi để dãy a trở thành dãy tốt.

Sample Input

Copy
8
2 7 1 8 2 8 1 8

Sample Output

Copy
5

KHIÊU VŨ

Nộp bài
Time limit: 1.0 / Memory limit: 512M

Point: 50


Xuất hiện

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho dãy am số nguyên a1,a2,,am.

Dãy bn số nguyên b1,b2,,bn. Hãy tìm số lượng phần tử trong dãy a xuất hiện trong dãy b.

Input

Dòng đầu tiên chứa hai số nguyên mn (0<m,n105).

Dòng tiếp theo chứa m số nguyên ai (109ai109).

Dòng tiếp theo chứa n số nguyên bi (109bi109).

Output

Số lượng phần tử trong dãy a xuất hiện trong dãy b.

Sample

Input
Copy
3 5
1 2 3
1 3 3 4 5
Output
Copy
2

Cập nhật 3

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho dãy a gồm n phần tử xếp thành một vòng tròn có giá trị bằng 0 và thực hiện m thao tác, mỗi thao tác gồm hai số (l,r) có ý nghĩa: tăng các phần tử có chỉ số từ l đến r thêm 1 đơn vị.

Sau khi thực hiện xong m thao tác, hãy tìm phần tử lớn nhất trong dãy và đưa ra số lần xuất hiện của phần tử đó trong dãy a mới.

Input

  • Dòng đầu tiên chứa hai số nguyên n,m (1n1018,1m105).
  • m dòng sau, mỗi dòng chứa hai số nguyên li,ri (1li,rin,1im).

Output

Kết quả gồm hai số nguyên dương là đáp án của bài toán trên.

Ví dụ

Input
Copy
5 2
1 5
4 2
Output
Copy
2 4
Giải thích


Tìm từ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho một bảng kích thước n dòng và m cột gồm các chữ cái, hãy xác định xem từ S có xuất hiện trong bảng hay không.

Một từ được gọi là xuất hiện trong bảng nếu:

  • Nó có thể được ghép từ các ô kề nhau trong bảng.
  • Một ô không thể sử dụng nhiều lần trong một từ.
  • Hai ô kề nhau nếu chúng có chung cạnh (trái, phải, trên, hoặc dưới).
Input
  • Dòng đầu tiên chứa hai số nguyên nm, là số dòng và số cột của bảng.
  • n dòng tiếp theo, mỗi dòng chứa m ký tự, biểu diễn các ô trong bảng.
  • Dòng cuối cùng chứa chuỗi S cần tìm.
Output
  • In YES nếu từ S xuất hiện trong bảng.
  • In NO nếu từ S không xuất hiện.
Điều kiện
  • 1n,m6.
  • Độ dài của S:1|S|15.
  • Bảng chỉ chứa các chữ cái viết thường từ a đến z.
Ví dụ
Input:
Copy
3 4
a b c e
s f c s
a d e e
see
Output:
Copy
YES
Giải thích:
  • Từ "see" xuất hiện từ các ô (2,4)(3,3)(3,4).

Ước số và tổng ước số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 50

Cho số nguyên dương N.

Yêu cầu: Đếm số lượng ước số của N và tổng các ước số của N.

Input

  • Gồm một dòng duy nhất là số nguyên dương N

Output

  • Gồm hai số nguyên là sô lượng ước số và tổng các ước của N

Constraints

  • 1N2×109.

Sample Test

Input
Copy
10 
Output
Copy
4 18
Explanation
  • Số 10 có ước là 1, 2, 5, 10 và tổng các ước là 1+2+5+10=18

Liên tiếp

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho mảng A gồm n số nguyên.

Bạn phải thay đổi ít nhất bao nhiêu số để mảng A chỉ gồm các số nguyên liên tiếp?

Input
  • Dòng đầu tiên gồm số nguyên n.
  • Dòng thứ hai gồm n số nguyên Ai.
Output
  • In ra số lượng số nguyên ít nhất phải thay.
Điều kiện
  • 1n105.
  • 1Ai109.
Ví dụ

Input:

Copy
3
4 10 5

Output:

Copy
1

Chú ý: Thay 10 bằng 6.

Ràng buộc
  • Subtask 1 (50%): n1000.
  • Subtask 2 (50%): Không có ràng buộc gì thêm.

Đếm cặp

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100


Quảng Cáo

Nộp bài
Time limit: 1.0 / Memory limit: 512M

Point: 100

Một hàng rào bao gồm n bảng dọc. Chiều rộng của mỗi bảng là 1 và chiều cao của chúng có thể khác nhau.

Bạn muốn gắn một quảng cáo hình chữ nhật lên hàng rào. Diện tích tối đa của một quảng cáo như vậy là gì?

Input

  • Dòng đầu vào đầu tiên chứa một số nguyên n: chiều rộng của hàng rào.
  • Sau này, có n số nguyên k1,k2,,kn: chiều cao của mỗi bảng dọc.

Output

  • In một số nguyên: diện tích tối đa của quảng cáo.

Constraints

  • 1n2105
  • 1ki109

Example

Sample input

Copy
8
4 1 5 3 3 2 4 1

Sample output

Copy
10

Búp bê

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Công ty đồ chơi X nhập khẩu n con búp bê gỗ. Các con búp bê được đánh số từ 1 tới n trong đó con búp bê thứ i là một hộp rỗng có kích thước là một số nguyên ai. Người ta có thể lồng con búp bê thứ i vào trong con búp bê thứ j nếu con búp bê thứ j đang rỗng và ai+kaj, với k là một số nguyên dương cho trước. Bằng cách lồng các con búp bê vào nhau theo cách như vậy, công ty X chỉ cần tìm chỗ đặt những con búp bê ngoài cùng (những con búp bê không nằm trong bất kỳ con búp bê nào khác) vào kho.

Yêu cầu: Hãy giúp công ty X lồng các con búp bê vào nhau sao cho tổng kích thước các con búp bê ngoài cùng là nhỏ nhất.

Input

Gồm 2 dòng

  • Dòng 1 chứa hai số nguyên dương n105; k109 cách nhau một khoảng trắng.

  • Dòng 2 chứa n số nguyên dương a1,a2,...,an ( ai109), mỗi số cách nhau một khoảng trắng.

Output

  • Là một số nguyên duy nhất là tổng kích thước các con búp bê ngoài cùng theo phương án tìm được.

Sample Test

Input
Copy
8 2
8 4 2 1 1 3 5 9
Output
Copy
18

Trung bình cộng

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho số n và dãy số nguyên a gồm n phần tử, hãy tìm đoạn con liên tiếp dài nhất của dãy a có trung bình cộng lớn hơn hoặc bằng k cho trước.

Input

  • Dòng đầu gồm 2 số nguyên n (1n105)k (|k|106).
  • Dòng sau gồm n số nguyên miêu tả dãy a (|ai|106)

Output

  • In ra một số nguyên là độ dài của dãy con liên tiếp dài nhất thỏa mãn.

Sample Test

Input

Copy
7 3
1 5 2 3 1 4 1

Output

Copy
5

Tăng bảng

Nộp bài
Time limit: 1.0 / Memory limit: 1G

Point: 100

Thao tác tăng hình nón đối xứng của một dãy số X1,X2,X3,,XN2,XN1,XN được thực hiện như sau:

  • Tăng X1XN lên 1 đơn vị;
  • Tăng X2XN1 lên 2 đơn vị;
  • Tăng X3XN2 lên 3 đơn vị;

Cho một bảng hình vuông AN dòng, N cột. Các dòng được đánh số từ 1 tới N theo thứ tự từ trên xuống dưới và các cột được đánh số từ 1 tới N theo thứ tự từ trái qua phải. Ô ở dòng thứ i, cột thứ j được gọi là ô A(i,j). Ban đầu tất cả các ô đều có giá trị bằng 0. Thực hiện T thao tác tăng hình nón đối xứng trên bảng A, mỗi thao tác có cấu trúc như sau: gồm bốn số nguyên dương k,rc,x,y (k=1 hoặc k=2) có ý nghĩa:

  • Khi k=1, thực hiện tăng hình nón đối xứng trên dòng rc với dãy số gồm các số từ A(rc,x) đến A(rc,y);
  • Khi k=2, thực hiện tăng hình nón đối xứng trên cột rc với dãy số gồm các số từ A(x,rc) đến A(y,rc).

Yêu cầu: Cho kích thước bảng, T thao tác tăng và Q câu hỏi. Mỗi câu hỏi có ý nghĩa: tìm giá trị của một ô của bảng sau khi thực hiện T thao tác.

Dữ liệu nhập vào từ file văn bản ITABLE.INP:

  • Dòng đầu tiên gồm hai số nguyên dương NT là kích thước của bảng và số thao tác tăng. (N5000; T105)
  • T dòng sau, mỗi dòng gồm bốn số nguyên dương k,rc,x,y mô tả thao tác tăng lên dòng hoặc cột của bảng. (k=1 hoặc k=2; rc,x,yN)
  • Dòng tiếp theo gồm số một số nguyên dương Q là số ô cần tìm giá trị. (Q105)
  • Q dòng sau, mỗi dòng chứa hai số nguyên dương u,v có ý nghĩa là cần tìm giá trị của ô A(u,v). (u,vN)

Mỗi số cách nhau một dấu cách. Dữ liệu đảm bảo đúng đắn và luôn có kết quả.

Kết quả ghi ra file văn bản ITABLE.OUT:

Gồm Q dòng, mỗi dòng in ra giá trị của một ô tương ứng.

Ví dụ

Input
Copy
4 2
1 2 1 4
2 3 1 3
3
1 1
2 2
2 3
Output
Copy
0
2
4

Giải thích:

Giới hạn

  • 50% số test tương ứng với số điểm có với T5000;
  • 30% số test khác tương ứng với số điểm có với Q500;
  • 20% số test còn lại tương ứng với số điểm không có giới hạn gì thêm.

Chia nhóm 2

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho dãy A gồm n số nguyên. Hãy tìm cách chia dãy thành k nhóm mà các nhóm có tổng bằng nhau. Mỗi nhóm phải có ít nhất 1 phần tử.

Input

  • Dòng đầu tiên gồm hai số nguyên n,k.
  • Dòng thứ hai gồm n số nguyên Ai.

Output

  • In ra n số nguyên, số nguyên thứ i là nhóm của phần tử thứ i. Nếu có nhiều đáp án, in ra đáp án bất kỳ.
  • Nếu không tồn tại đáp án, in ra 0.

Điều kiện

  • 2k<n10.
  • 1Ai100.

Ví dụ

Input:

Copy
5 3
1 4 6 9 10

Output:

Copy
1 3 3 1 2

Giải thích:

  • Nhóm đầu tiên gồm hai phần tử A2+A3=4+6=10.
  • Nhóm thứ hai gồm một phần tử A5=10.
  • Nhóm thứ ba gồm hai phần tử A1+A4=1+9=10.

Các đáp án như 12213 hay 31132 cũng được chấp nhận.


Divisor Analysis

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một số nguyên, nhiệm vụ của bạn là tìm số lượng, tổng và tích của các ước số của nó. Ví dụ, chúng ta hãy xem xét số 12:

  • số lượng ước số là 6 (chúng là 1,2,3,4,6,12)
  • tổng của các ước số là 1+2+3+4+6+12=28
  • tích của các ước số là 1234612=1728

Vì số đầu vào có thể rất lớn, nó sẽ được cho dưới dạng phân tích thừa số nguyên tố.

Input

  • Dòng đầu tiên có một số nguyên n: số phần trong dạng phân tich thừa số nguyên tố.
  • Sau đó, gồm n dòng mô tả dạng phân tích. Mỗi dòng có hai số xk, trong đó x là số nguyên tố và k là lũy thừa của nó.

Output

  • In ba số nguyên chia lấy dư cho 109+7: số lượng, tổng và tích của các ước số.

Constraints

  • 1n105
  • 2x106
  • mỗi x là một số nguyên tố riêng biệt
  • 1k109

Example

Sample Input
Copy
2 
2 2
3 1
Sample Output
Copy
6 28 1728