Bài đăng

KTTRU - Kiểm tra trùng

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  nxphuc Yêu cầu rất đơn giản, cho một xâu kí tự S. Nhiệm vụ của bạn là hãy viết lặp đi lặp lại xâu S vô hạn lần và cho biết 2 kí tự tứ a và thứ b của xâu mới đó có giống nhau hay không? Các phần tử được đánh số từ 1. Dữ liệu nhập:  - Dòng đầu tiên chứa xâu S ( 1 ≤ |S| ≤ 10 5 ).  - Dòng thứ hai chứa một số nguyên Q - số lượng truy vấn ( 1 ≤ Q ≤ 10 5 ).  - N dòng tiếp theo, mỗi dòng chứa 2 số nguyên a, b - chỉ số 2 phần tử cần kiểm tra ( 1 ≤ a, b ≤ 10 18 ). Dữ liệu xuất:  Gồm Q dòng tương ứng với Q truy vấn, dòng thứ i trong Q dòng chứa "Yes" hoặc "No" (không có ngoặc kép) tương ứng với hai kí tự ở vị trí a và b giống nhau hay không. Ví dụ input vgxgp 3 2 4 2 5 7 14 output Yes No Yes Solution : #include <iostream> #include <string.h> #define max 100005 using namespace std ; int

GCHUOI - Ghép chuỗi

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  nxphuc Ở đất nước XYZ, tên của mỗi người đều được đặt bằng cách ghép lại bằng 3 chữ cái X, Y và Z. Mỗi một cái tên của người dân ở đây được đặt theo nguyên tắc sau:  - Nó chỉ được ghép từ tối đa 2 trong 3 chữ cái đó: (X, Y), (X, Z) hoặc (Y, Z).  - Trong tên của mỗi người, 2 kí tự liên tiếp nhau phải khác nhau. Theo quan niệm của dân tộc XYZ thì tên càng dài sẽ càng đẹp. Và tùy thuộc vào địa vị xã hội của mỗi gia đình, khi một đứa trẻ sinh ra thì bố mẹ của chúng được cho phép sử dụng tối đa a kí tự X, b kí tự Y và c kí tự Z để đặt tên cho con của mình. Hãy giúp họ đặt một cái tên đẹp nhất cho con của mình nhé. Dữ liệu nhập:  Dòng đầu tiên chứa một số nguyên T (1 ≤ T ≤ 100) - số lượng test case. T dòng tiếp theo, mỗi dòng chứa 3 số nguyên a, b, c là số lượng của mỗi kí tự tương ứng (0 ≤ a, b, c ≤ 10 6 ). Dữ liệu xuất:  Mỗi test case xuất ra

MERGENUM - Ghép số

ữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  middlest Cho hai số nguyên dương x, y, ta xây dựng số z bằng cách ghép các chữ số của x và y sao cho thứ tự các chữ số của x và y vẫn giữ nguyên trên z. Tìm giá trị bé nhất và lớn nhất của z. Dữ liệu vào Một dòng gồm 2 số nguyên dương x, y Dữ liệu ra Dòng thứ nhất ghi giá trị bé nhất của z và dòng thứ hai ghi giá trị lớn nhất của z Giới hạn 1 <= x, y <= 10 8 , dữ liệu đảm bảo không có các chữ số 0 vô nghĩa của x và y. Ví dụ input 13 26 output 1236 2613 Solution : #include <bits/stdc++.h> using namespace std ; string s,t,miin = "999999999999999999" ,maax = "0" ; void backtracking ( int x, int y,string res){ if (res. length () == s. length () + t. length ()){ miin = min (res,miin); maax = max (res,maax); } if (x<s. length ()) backtrack

APGP - Cấp số cộng - Cấp số nhân

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  nxphuc Một cấp số cộng (tiếng Anh:  arithmetic progression  hoặc  arithmetic sequence,  viết tắt là AP) là một dãy số thỏa mãn điều kiện: hai phần tử liên tiếp nhau sai khác nhau một hằng số, hằng số đó được gọi là công sai. Ví dụ: 1 4 7 10 ... là một cấp số cộng với công sai là 3 Một cấp số nhân (tiếng Anh:  geometric progression, vi ết tắt là GP) là một dãy số thỏa mãn điều kiện: tỉ lệ của hai phần tử liên tiếp là một hằng số khác 0, hằng số đó được gọi là công bội. Ví dụ: 1 3 9 81 .. là một cấp số nhân với công sai là 3 Cho 3 số nguyên là 3 phần tử liên tiếp của một dãy số, hãy cho biết dãy số đó là cấp số cộng hay cấp số nhân và phần tử tiếp theo của dãy số là số nào? Ở đây chỉ xét trường hợp công sai, công bội là số nguyên. Dữ liệu nhập:  Gồm nhiều dòng, mỗi dòng chứa 3 số nguyên a, b, c (a  < b < c và theo  đúng thứ tự 3 phần t

EZSORT - Sắp xếp là chuyện nhỏ!

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  middlest Cho một dãy gồm n số nguyên dương a 1 , a 2 , a 3 , ..., a n  là một hoán vị của dãy các số từ 1 đến n. Ta có thể thực hiện thao tác biến đổi sau đây trên dãy: Chọn một phần tử a i  bất kỳ (1 <= i <= n), sau đó xóa phần tử này khỏi dãy và chèn nó vào vị trí bên trái nhất của dãy. Hãy tìm số thao tác ít nhất để biến đổi dãy đã cho thành một dãy có giá trị tăng dần từ 1 đến n. Dữ liệu vào Dòng thứ nhất ghi số nguyên dương n n dòng tiếp theo, dòng thứ i ghi số a i Dữ liệu ra Ghi ra một số duy nhất là thao tác ít nhất để biến đổi dãy đã cho thành một dãy có giá trị tăng dần từ 1 đến n. Giới hạn 1 <= n <= 3x10 5 Ví dụ input 8 5 6 7 8 1 2 4 3 output 4 Solution :  #include <iostream> using namespace std ; int main (){ int n; cin >> n; int a[n],max = - 1 ,posMax

CEASA - Mã hóa Ceasar

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  admin        Trước công nguyên, nhà quân sự người La Mã Julius Ceasar đã nghĩ ra phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ đứng sau nó  k  vị trí trong bảng chữ cái. Giả sử chọn  k = 3 , ta có bảng chuyển đổi như sau: Chữ ban đầu:    a b c d e f g h i j k l m n o p q r s t u v w x y z Chữ thay thế:  d e f g h i j k l m n o p q r s t u v w x y z a b c Giả sử bản tin là: ' attack ' thì sau khi mã hóa sẽ có bản mã ' dwwdfn ' và Ceasar gửi bản mã cho cấp dưới. Nhận được bản mã và khóa, cấp dưới của Ceasar chưa biết giải mã làm sao. Bạn hãy giúp họ đi nào. Dữ liệu nhập: - Dòng đầu tiên là bản tin đã được mã hóa, chỉ gồm các chữ cái la tinh thường, chiều dài không quá 100 ký tự. - Dòng thứ 2 là số nguyên thể hiện khóa k (1 ≤ k ≤ 25) Dữ liệu xuất: - Bản tin ban đầu. Ví dụ input

DASO - Dãy số Fibonacci (OLPCĐ 2013)

Dữ liệu vào: standard input Dữ liệu ra: standard output Giới hạn thời gian: 1.0 giây Giới hạn bộ nhớ: 128 megabyte Đăng bởi:  admin        Một dãy số gồm n số nguyên f 1 , f 2 , ... , f n  được gọi là dãy có tính chất của dãy số Fibonacci nếu n ≥ 3 và với mọi số f i  (i ≥ 3) thõa mãn điều kiện f i  = f i-1  + f i-2 .       Ví dụ, dãy 1, 1, 2, 3, 5, 8  là dãy số có tính chất của dãy số Fibonacci; còn dãy 3, 3, 6, 9, 14, 23 không phải là dãy số có tính chất của dãy số Fibonacci. Yêu cầu : Cho dãy số nguyên a 1 , a 2 , ... , a n . Hãy  tìm một dãy con liên tiếp gồm nhiều phần tử nhất của dãy số a 1 , a 2 , ... , a n  mà có tính chất của dãy số Fibonacci. (Dãy con liên tiếp là dãy có dạng: a i , a i+1 , a i+2 ,... ,a i+k ). Dữ liệu nhập:  -  Dòng đầu chứa số nguyên n (3 ≤ n ≤ 30.000) -  Dòng thứ hai chứa n số nguyên a 1 , a 2 , ... , a n  (|ai| ≤ 10 9 ). Dữ liệu xuất: - Nếu tồn tại dãy con Fibonaci, in ra số lượng phần tử của dãy con tìm được. - Nếu không tồn tại dãy con l