Email và Mật khẩu (xâu ký tự - chuỗi ký tự)

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

Point: 1

Hiện tại trường đại học NONAME tổ chức cấp email cho sinh viên mới nhập học. Email và mật khẩu sẽ được cấp dựa trên tên của sinh viên và ngày sinh của sinh viên đó. Bạn hãy viết chương trình để cấp tài khoản theo yêu cầu như sau, tên email được tạo bằng cách lấy tên của sinh viên và ghép với các chữ cái đầu tiên của họ và tên đệm, tất các ký tự trong email đều ở dạng in thường, ví dụ sinh viên có tên "Nguyen Van Long" sẽ được cấp email "longnv@xyz.edu.vn". Mật khẩu sẽ dựa trên ngày sinh của sinh viên đó, bằng cách ghép ngày tháng năm lại với nhau, ví dụ sinh viên sinh ngày 27/04/2002 sẽ có mật khẩu là 2742002.


Input 01:
1
le van TEO 11/05/2004
Output 01:
teolv@xyz.edu.vn
1152004
Input 02:
2
le van TEO 11/05/2004
tran thi TY 23/2/2006
Output 02:
teolv@xyz.edu.vn
1152004
tytt@xyz.edu.vn
2322006

Sắp xếp các từ trong xâu 1 (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho một xâu kí tự S bao gồm các chữ cái và dấu cách, một từ được định nghĩa là các kí tự liên tiếp không chứa dầu cách, đầu tiên hãy sắp xếp các từ trong xâu theo thứ tự từ điển tăng dần, sau đó sắp xếp các từ trong xâu theo thứ tự chiều dài tăng dần, trong trường hợp có nhiều từ có cùng chiều dài thì từ nào có thứ tự từ điển nhỏ hơn sẽ in ra trước.


Ràng buộc: ~1 \leq len(s) \leq 100000~


Dòng đầu tiên in ra các từ trong xâu theo thứ tự từ điển tăng dần. Dòng thứ 2 in ra các từ trong xâu theo thứ tự chiều dài tăng dần, trong trường hợp có nhiều từ có cùng chiều dài thì từ nào có thứ tự từ điển nhỏ hơn sẽ in ra trước. Các từ được in cách nhau một dấu cách.


Input:
hoc cong nghe day lap trinh
Output:
cong day hoc lap nghe trinh 
day hoc lap cong nghe trinh

Ký tự xuất hiện ở cả 2 xâu 1 (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho 2 xâu kí tự S1 và S2, hãy in ra các kí tự xuất hiện ở cả 2 xâu theo thứ tự từ điển, chú ý mỗi kí tự chỉ liệt kê một lần. Sau đó tiếp tục liệt kê các kí tự xuất hiện ở S1 mà không xuất hiện trong S2 và ngược lại theo thứ tự từ điển.


Ràng buộc: ~1 \leq len(S1) ≤ 100000; 1 \leq len(S2) ≤ 100000~


Dòng 1 in ra các ký tự xuất hiện ở cả 2 xâu theo thứ tự từ điển tăng dẫn. Dòng 2 in ra các ký tự xuất hiện ở 1 trong 2 xâu theo thứ tự từ điển tăng dần.


Input:
hoccongnghe
laptrinh
Output:
hn
acegiloprt

Số lớn nhất và nhỏ nhất (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho số tự nhiên m và số nguyên s không âm. Nhiệm vụ của bạn là tìm số lớn nhất và nhỏ nhất có m chữ số và tổng chữ số bằng s.


Ràng buộc: 1 ≤ m ≤ 100: 0 ≤ s ≤ 900


In ra số lớn nhất, nhỏ nhất có thể đạt được, mỗi số in ra trên 1 dòng. Nếu không có đáp án thì in ra 1 dòng "NOT FOUND".


Input:
2 15
Output:
96
69

Xâu con liên tiếp các ký tự giống nhau (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho một xâu kí tự S chỉ bao gồm các chữ cái in thường, hãy tìm xâu con liên tiếp chứa các kí tự giống nhau dài nhất, nếu có nhiều xâu con thỏa mãn thì chọn xâu con có thứ tự từ điển lớn nhất.


Ràng buộc: 1≤len(S)≤100000;


In ra xâu con tìm được.


Input:
zzaabc
Output:
zz

Xâu con liên tiếp các ký tự liền kề khác nhau (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho một xâu kí tự S chỉ bao gồm các chữ cái in thường, hãy tìm xâu con liên tiếp chứa các kí tự liền kề khác nhau dài nhất, nếu có nhiều xâu con thỏa mãn thì chọn xâu con có thứ tự từ điển lớn nhất.


Ràng buộc: 1≤len(S)≤100000;


In ra xâu con tìm được.


Input:
zzaabc
Output:
abc

Phép chia dư (xâu ký tự - chuỗi ký tự)

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

Point: 1

Cho 2 số N và M, hãy tìm số dư khi chia N cho M. Để tính số dư của 2 số N và M, trong trường hợp N là 1 số nguyên lớn, ta có thế dùng kiến thức toán học sau. Ví dụ bạn có N = 12345 và M = 3, bạn có thể duyệt từng chữ số của N từ trái qua phải và duy trì số dư r = 0 ban đầu, khi gặp số 1, r = r * 10 + 1, sau đó lấy r % 3 = 1, khi gặp 2, r = r * 10 + 2 = 12, r % 3 = O,... tương tự như vậy cho tới khi gặp số cuối cùng của N, giá trị của r khi đó chính là số dư khi chia N cho M


Ràng buộc: N có không quá 1000 chữ số; M là 1 số nguyên 64 bit


Dòng đầu tiên là số nguyên dương N. Dòng thứ 2 là số nguyên dương M


In ra kết quả của bài toán


Input:
330679460715311507542330042907584061562240887021233857757277218125606927281270180531182038900800978073497374454836566743377505594904632848825152841886908750331356498961889280542914939799031248188994530520348284408526650762938562239031535495222937526264692464562634692207015483396201500797489580352852784598744255101464231146514589223153821533638674181894270625068338371026309043199729843644081432642072639241486973301791778404684290407546511642867326414059842209898930941589177651423429924314638408205707723833380738893975928001187847837003964656445970653012449940511351014667855169903985819999999999998156
9999999999998156
Output:
5551041562357936

Đếm xâu TN

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

Point: 1

Cho một xâu S có độ dài xâu không quá 10^4, chỉ gồm các kí tự tiếng Anh in hoa. Viết liên tiếp K lần xâu X được xâu S. Hỏi có bao nhiêu xâu TN được tạo ra bằng cách xoá các kí tự từ xâu S.


Đầu vào:

Dòng đầu tiên chứa xâu X

Dòng thứ hai chứa một số nguyên dương K (K <= 10^9)


Đầu ra: In ra kết quả của bài toán sau khi chia lấy dư cho 10^9 + 7


Input:
TNNT
2
Output:
8

Giải thích:

Xâu S có dạng TNNTTNNT. Các bộ vị trí tạo thành xâu TN thỏa mãn là (1,2), (1,3), (1,6), (1,7), (4,6), (4,7), (5,6), (5,7)