Đề 58 - Bài 1: Tổng khoảng cách bit (Mã bài: HAMMING)

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

Point: 5

Khoảng cách Hamming giữa hai số nguyên là số lượng các bit khác nhau của chúng ở cùng một vị trí trong hệ nhị phân (chính là số lượng bit 1 của phép XOR giữa 2 số). Cho mảng A gồm N số nguyên. Hãy tính tổng khoảng cách Hamming của tất cả các cặp số (Ai, Aj) trong mảng với 1 <= i < j <= N. Kết quả có thể rất lớn nên chia dư cho 10^9+7.

Input:

Dòng 1: N (1 <= N <= 10^5).

Dòng 2: N số nguyên Ai (0 <= Ai <= 10^9).

Output: Tổng khoảng cách Hamming modulo 10^9+7.

Ví dụ:

Input:
3
4 14 2
Output:
6

(Giải thích: 4(0100), 14(1110), 2(0010). 4 và 14 khác nhau 2 bit. 4 và 2 khác nhau 2 bit. 14 và 2 khác nhau 2 bit. Tổng = 6).


Đề 58 - Bài 2: Ký tự độc nhất (Mã bài: FIRSTNONREP)

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

Point: 5

Máy chủ nhận được một luồng dữ liệu là một xâu ký tự S siêu dài. Để tìm điểm bắt đầu của mã khóa, máy chủ cần tìm ra Ký tự đầu tiên (từ trái sang phải) KHÔNG BỊ LẶP LẠI trong toàn bộ xâu S. Nếu tất cả các ký tự đều bị lặp lại ít nhất 1 lần, hãy in ra dấu "#".

Input: Một dòng chứa xâu S (Độ dài <= 10^6).

Output: Ký tự thỏa mãn hoặc "#".

Ví dụ:

Input:
trungtamhoccongnghe
Output:
r

(Giải thích: Chữ t xuất hiện 2 lần. Chữ r xuất hiện 1 lần và nằm sớm nhất).


Đề 58 - Bài 3: Cuộc đua kỳ thú (Mã bài: MICEHOLE)

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

Point: 5

Trong một trò chơi sinh tồn, có N người chơi đứng tại các tọa độ Xi, và có N hầm trú ẩn tại các tọa độ Yj. Khi có còi báo động, mỗi người phải chạy ngay vào một hầm trú ẩn (mỗi hầm chỉ chứa đúng 1 người). Thời gian chạy tỷ lệ thuận với khoảng cách. Hãy sắp xếp phân công người vào hầm sao cho "người phải chạy xa nhất" có khoảng cách di chuyển là nhỏ nhất có thể.

Input:

Dòng 1: N (1 <= N <= 10^5).

Dòng 2: N số nguyên Xi (-10^9 <= Xi <= 10^9).

Dòng 3: N số nguyên Yj (-10^9 <= Yj <= 10^9).

Output: Khoảng cách xa nhất phải chạy trong phương án tối ưu.

Ví dụ:

Input:
3
4 -4 2
4 0 5
Output:
4

(Giải thích: Xếp -4 vào 0 (cách 4), 2 vào 4 (cách 2), 4 vào 5 (cách 1). Xa nhất là 4).


Xóa nguyên âm chèn dấu chấm (hsg)

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

Point: 5

Petya bắt đầu tham dự các bài học lập trình. Trong bài học đầu tiên, nhiệm vụ của anh là viết một chương trình đơn giản. Chương trình được yêu cầu thực hiện như sau: trong chuỗi đã cho, bao gồm nếu chữ hoa và chữ thường viết hoa, nó sẽ: xóa tất cả các nguyên âm, chèn một ký tự "." trước mỗi phụ âm, thay thế tất cả các phụ âm chữ hoa bằng các chữ thường tương ứng. Nguyên âm là các chữ cái "A", "O", "Y", "E", "U", "I" và phần còn lại là phụ âm. Đầu vào của chương trình chính xác là một chuỗi, nó sẽ trả về đầu ra dưới dạng một chuỗi, kết quả là sau khi chương trình xử lý chuỗi ban đầu. Giúp Petya đối phó với nhiệm vụ dễ dàng này.

Đầu vào: Dòng đầu tiên đại diện cho chuỗi đầu vào của chương trình Petya. Chuỗi này chỉ bao gồm các chữ cái Latinh viết hoa và viết thường và độ dài của nó là từ 1 đến 100.

Đầu ra: In chuỗi kết quả. Nó được đảm bảo rằng chuỗi này không trống.

Input:
Codeforces
Output:
.c.d.f.r.c.s