about summary refs log tree commit diff
path: root/others
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-01 21:05:53 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2017-01-01 21:15:44 +0700
commit7206ecee7579a10dd347d06b397b3790e969f8f3 (patch)
tree0b7218b75d8dae913fd91c695e105fc6f2256479 /others
parentc67182c04491f2cf8b67e78b68aebf32aea25470 (diff)
downloadcp-7206ecee7579a10dd347d06b397b3790e969f8f3.tar.gz
Add others/easy20160714
Diffstat (limited to 'others')
-rw-r--r--others/easy20160714/01.c26
-rw-r--r--others/easy20160714/02.c25
-rw-r--r--others/easy20160714/03.c31
-rw-r--r--others/easy20160714/04.c35
-rw-r--r--others/easy20160714/05.c40
-rw-r--r--others/easy20160714/06.c24
-rw-r--r--others/easy20160714/07.c28
-rw-r--r--others/easy20160714/08.c52
-rw-r--r--others/easy20160714/09.c37
-rw-r--r--others/easy20160714/10.c40
-rw-r--r--others/easy20160714/11.c31
-rw-r--r--others/easy20160714/12.c28
-rw-r--r--others/easy20160714/13.c21
-rw-r--r--others/easy20160714/14.c28
-rw-r--r--others/easy20160714/15.c32
-rw-r--r--others/easy20160714/README.md364
-rw-r--r--others/mkcal/README.md2
17 files changed, 843 insertions, 1 deletions
diff --git a/others/easy20160714/01.c b/others/easy20160714/01.c
new file mode 100644
index 0000000..9f36e46
--- /dev/null
+++ b/others/easy20160714/01.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	short x;
+
+	fscanf(f, "%hd", &x);
+
+	fclose(f);
+
+	if (x > -2)
+		x = -2;
+	else
+		do
+			x--;
+		while (x % 2);
+
+	f = fopen("OUT.TXT", "w");
+
+	fprintf(f, "%hd\n", x);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/02.c b/others/easy20160714/02.c
new file mode 100644
index 0000000..eef5264
--- /dev/null
+++ b/others/easy20160714/02.c
@@ -0,0 +1,25 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	char n;
+	short a, tmp = -1;
+
+	fscanf(f, "%hhd", &n);
+
+	for (; n; n--) {
+		fscanf(f, "%hd", &a);
+		tmp = (a > tmp && a % 2 == 0) ? a : tmp;
+	}
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	fprintf(f, "%hd\n", tmp);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/03.c b/others/easy20160714/03.c
new file mode 100644
index 0000000..bec1804
--- /dev/null
+++ b/others/easy20160714/03.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	char n, i;
+	short *a, b;
+	long k;
+
+	fscanf(f, "%hhd %ld", &n, &k);
+	a = malloc(n * sizeof(short));
+
+	for (i = 0; i < n; i++)
+		fscanf(f, "%hd", a + i);
+
+	for (i = 0; i < n && k > 0; i++) {
+		fscanf(f, "%hd", &b);
+		k -= b - a[i];
+	}
+	
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	fprintf(f, "%hhd\n", (n - i) ? i : -1);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/04.c b/others/easy20160714/04.c
new file mode 100644
index 0000000..d6c0a47
--- /dev/null
+++ b/others/easy20160714/04.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	char n, i, j;
+	short m, *a;
+
+	fscanf(f, "%hhd %hd", &n, &m);
+	a = malloc(n * sizeof(short));
+
+	for (i = 0; i < n; i++)
+		fscanf(f, "%hd", a + i);
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	for (i = 0; i + 1 < n; i++)
+		for (j = i + 1; j < n; j++)
+			if (a[i] + a[j] == m) {
+				fprintf(f, "%hhd %hhd\n", i + 1, j + 1);
+
+				fclose(f);
+
+				return 0;
+			}
+
+	fputs("-1\n", f);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/05.c b/others/easy20160714/05.c
new file mode 100644
index 0000000..4e0e58f
--- /dev/null
+++ b/others/easy20160714/05.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	unsigned long long x, y;
+	char z = 1;
+
+	fscanf(f, "%lld", &x);
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	y = x;
+
+	while (y ^ 1) {
+		if (y % 2)
+			y = y / 2 + 1;
+		else
+			y /= 2;
+
+		z++;
+	}
+
+	fprintf(f, "%hhd ", z);
+
+	z = 1;
+
+	while (x ^ 1) {
+		x /= 2;
+		z++;
+	}
+
+	fprintf(f, "%hhd\n", z);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/06.c b/others/easy20160714/06.c
new file mode 100644
index 0000000..079c1da
--- /dev/null
+++ b/others/easy20160714/06.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	unsigned long long x, y, k, i;
+
+	fscanf(f, "%lld %lld %lld", &x, &y, &k);
+
+	fclose(f);
+
+	i = y / (x * 6 + k) * 6;
+
+	while (i * x + (i + 5) / 6 * k < y)
+		i++;
+
+	f = fopen("OUT.TXT", "w");
+
+	fprintf(f, "%lld\n", i);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/07.c b/others/easy20160714/07.c
new file mode 100644
index 0000000..0efd7f5
--- /dev/null
+++ b/others/easy20160714/07.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	char a;
+	short n, m;
+
+	fscanf(f, "%hd", &n);
+
+	m = n / 2;
+
+	for (; n; n--) {
+		fscanf(f, "%hhd", &a);
+		if (a == 1)
+			m--;
+	}
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	fputs((m < 0) ? "YES\n" : "NO\n", f);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/08.c b/others/easy20160714/08.c
new file mode 100644
index 0000000..c39fee9
--- /dev/null
+++ b/others/easy20160714/08.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+#define sqr(x) x * x
+
+int cmp(const void *x, const void *y)
+{
+	return *(unsigned long *) x - *(unsigned long *) y;
+}
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	char n, i, j, s[5] = {78, 79, 10};
+	unsigned long *a, c;
+	unsigned long long b;
+
+	fscanf(f, "%hhd", &n);
+	a = malloc(n * sizeof(unsigned long));
+
+	for (i = 0; i < n; i++)
+		fscanf(f, "%ld", a + i);
+
+	fclose(f);
+
+	qsort(a, n, sizeof(unsigned long), &cmp);
+
+	for (i = 0; i + 1 < n; i++)
+		for (j = i + 1; j < n; j++) {
+			b = sqr(a[i]) + sqr(a[j]);
+
+			c = (unsigned long) sqrt(b);
+
+			if (sqr(c) == b && bsearch(&c, a, n, 4, &cmp) != NULL) {
+				s[0] = 89;
+				s[1] = 69;
+				s[2] = 83;
+				s[3] = 10;
+
+				break;
+			}
+		}
+
+	f = fopen("OUT.TXT", "w");
+
+	fputs(s, f);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/09.c b/others/easy20160714/09.c
new file mode 100644
index 0000000..b7f4b40
--- /dev/null
+++ b/others/easy20160714/09.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+
+long gcd(long x, long y)
+{
+	long tmp;
+
+	while (y) {
+		tmp = x % y;
+		x = y;
+		y = tmp;
+	}
+
+	return x;
+}
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	long l, r, a;
+	short b;
+
+	fscanf(f, "%ld %ld %ld %hd", &l, &r, &a, &b);
+
+	fclose(f);
+
+	a = a * b / gcd(a, b);
+
+	l = (l % a) ? (l / a + 1) * a : l;
+
+	f = fopen("OUT.TXT", "w");
+
+	fprintf(f, "%ld\n", (r - l) / a + 1);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/10.c b/others/easy20160714/10.c
new file mode 100644
index 0000000..fefd6d3
--- /dev/null
+++ b/others/easy20160714/10.c
@@ -0,0 +1,40 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	unsigned long long n;
+	long long a, b, c;
+	char s[5] = {89, 69, 83, 10};
+
+	fscanf(f, "%lld", &n);
+
+	if (n > 2) {
+		fscanf(f, "%lld %lld", &a, &b);
+		c = b - a;
+
+		for (n -= 2; n; n--) {
+			a = b;
+			fscanf(f, "%lld", &b);
+
+			if (a - b + c) {
+				s[0] = 78;
+				s[1] = 79;
+				s[2] = 10;
+				s[3] = 0;
+
+				break;
+			}
+		}
+	}
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	fputs(s, f);
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/11.c b/others/easy20160714/11.c
new file mode 100644
index 0000000..61238ef
--- /dev/null
+++ b/others/easy20160714/11.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	short n, i, a;
+	char b[10000] = {};
+
+	fscanf(f, "%hd", &n);
+
+	for (i = 0; i < n; i++) {
+		fscanf(f, "%hd", &a);
+		if (a <= n)
+			b[a - 1] = 1;
+	}
+
+	fclose(f);
+
+	a = 1;
+	for (i = 0; i < n; i++)
+		if (!b[i]) {
+			a = 0;
+			break;
+		}
+
+	f = fopen("OUT.TXT", "w");
+	fputs(a ? "YES\n" : "NO\n", f);
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/12.c b/others/easy20160714/12.c
new file mode 100644
index 0000000..f8a71d3
--- /dev/null
+++ b/others/easy20160714/12.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	short m, n, i, a;
+	char b[10000] = {};
+
+	fscanf(f, "%hd %hd", &n, &m);
+	for (i = 0; i < m; i++) {
+		fscanf(f, "%hd", &a);
+		b[a - 1] = 1;
+	}
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+	fprintf(f, "%hd\n", n - m);
+
+	for (i = 0; i < n; i++)
+		if (!b[i])
+			fprintf(f, "%hd ", i + 1);
+
+	fputc(10, f);
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/13.c b/others/easy20160714/13.c
new file mode 100644
index 0000000..c95fa7c
--- /dev/null
+++ b/others/easy20160714/13.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *fi = fopen("INP.TXT", "r"), *fo = fopen("OUT.TXT", "w");
+	short n, i, a, b[10000] = {};
+	char m;
+
+	fscanf(fi, "%hd %hhd", &n, &m);
+
+	for (i = 0; i < n; i++) {
+		fscanf(fi, "%hd", &a);
+		fprintf(fo, "%hd ", ++b[a - 1]);
+	}
+
+	fputc(10, fo);
+
+	fcloseall();
+
+	return 0;
+}
diff --git a/others/easy20160714/14.c b/others/easy20160714/14.c
new file mode 100644
index 0000000..fa103ab
--- /dev/null
+++ b/others/easy20160714/14.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+int main()
+{
+	FILE *f = fopen("INP.TXT", "r");
+	short n, i, a, b[10000] = {[0 ... 9999] = -1};
+
+	fscanf(f, "%hd", &n);
+
+	for (i = 0; i < n; i++) {
+		fscanf(f, "%hd", &a);
+		b[a - 1]++;
+	}
+
+	fclose(f);
+
+	f = fopen("OUT.TXT", "w");
+
+	for (i = 0; i < n; i++)
+		if (!b[i]) {
+			fprintf(f, "%hd\n", i + 1);
+			break;
+		}
+
+	fclose(f);
+
+	return 0;
+}
diff --git a/others/easy20160714/15.c b/others/easy20160714/15.c
new file mode 100644
index 0000000..fc9c8e4
--- /dev/null
+++ b/others/easy20160714/15.c
@@ -0,0 +1,32 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+
+int main()
+{
+	FILE *fi = fopen("INP.TXT", "r"), *fo = fopen("OUT.TXT", "w");
+	int n, m, i, *a, *b, x, y;
+	char signal;
+
+	fscanf(fi, "%d %d", &n, &m);
+	a = malloc(n * sizeof(int));
+	b = malloc(n * sizeof(int));
+
+	for (i = 0; i < n; i++)
+		fscanf(fi, "%d %d", a + i, b + i);
+
+	for (i = 0; i < m; i++) {
+		fscanf(fi, "%hhd %d %d", &signal, &x, &y);
+		x--;
+
+		b[x] += (signal ^ 1) ? -y : y;
+		if (b[x] < a[x]) {
+			fprintf(fo, "BUY %d %d\n", x + 1, a[x] - b[x]);
+			b[x] = a[x];
+		}
+	}
+
+	fcloseall();
+
+	return 0;
+}
diff --git a/others/easy20160714/README.md b/others/easy20160714/README.md
new file mode 100644
index 0000000..0215e92
--- /dev/null
+++ b/others/easy20160714/README.md
@@ -0,0 +1,364 @@
+# Eazy 2016-07-14
+
+## Bài 01
+
+Nhập số nguyên x có giá trị tuyệt đối không vượt quá 1000. Tìm số nguyên âm
+chẵn lớn nhất nhỏ hơn x.
+
+### Ví dụ
+
+| INP.TXT | OUT.TXT |
+| :-----: | :-----: |
+|   -1    |   -2    |
+
+## Bài 02
+
+Cho một dãy số nguyên, đưa ra số chẵn lớn nhất.
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên n là số lượng phần tử của dãy (n ≤ 100).
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (|a<sub>i</sub>| ≤ 1000).
+
+### Dữ liệu ra
+
+Một số duy nhất là số chẵn lớn nhất trong dãy. Nếu không tồn tại số nào, ghi ra
+-1.
+
+### Ví dụ
+
+|    INP.TXT   | OUT.TXT |
+| ------------ | ------- |
+| 4<br>2 9 6 3 |    6    |
+
+## Bài 03
+
+Một cửa hàng mới khai trương được n ngày. Ban đầu cửa hàng bỏ ra k đồng để đầu
+tư cơ sở hạ tầng. Ngày thứ i cửa hàng bỏ ra một số vốn là a<sub>i</sub> đồng và
+cuối ngày thu về b<sub>i</sub> đồng. Hỏi ngày bao nhiêu thì cửa hàng bắt đầu
+thu hồi được hết vốn bỏ ra?
+
+### Dữ liệu vào
+
+* Dòng đầu chứa hai số nguyên dương n và k (n ≤ 100, k ≤ 10<sup>6</sup>).
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (|a<sub>i</sub>| ≤ 1000).
+* Dòng thứ b chứa n số nguyên b<sub>1</sub>, b<sub>2</sub>, ...,
+  b<sub>n</sub> (|b<sub>i</sub>| ≤ 1000).
+
+### Dữ liệu ra
+
+Một số nguyên chỉ ngày đầu tiên cửa hàng thu hồi vốn. Nếu sau n ngày vẫn chưa
+thu hồi vốn, ghi ra số -1.
+
+### Ví dụ
+
+|          INP.TXT          | OUT.TXT |
+| ------------------------- | :-----: |
+| 4 8<br>3 2 3 4<br>4 5 9 2 |    3    |
+| 3 6<br>1 2 3<br>2 3 4     |   -1    |
+
+## Bài 04
+
+Cho dãy n số a<sub>1</sub>, a<sub>2</sub>, ..., a<sub>n</sub> và số nguyên m.
+
+Tìm hai số có tổng là m trong dãy a.
+
+### Dữ liệu vào
+
+* Dòng đầu chứa hai số nguyên n và k (0 ≤ n ≤ 100, m ≤ 2000).
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (|a<sub>i</sub>| ≤ 1000).
+
+### Dữ liệu ra:
+
+Vị trí hai số có tổng là m trong dãy a. Nếu không tồn tại số nào, ghi ra -1.
+
+### Ví dụ
+
+|     INP.TXT    | OUT.TXT |
+| -------------- | ------- |
+| 4 8<br>2 9 6 3 |   1 3   |
+
+## Bài 05
+
+Giải bóng đá trường CHY có x đội tham gia. Luật chơi như sau. Tại mỗi vòng, các
+đội sẽ tham gia bốc thăm chọn cặp đá loại trực tiếp. Đội chiến thắng sẽ vào
+vòng sau. Nếu số đội là lẻ, có một đội bốc được lá thăm đặc biệt. Đội đó có thể
+bị loại hoặc cũng có thể không cần phải tham gia thi đấu cũng được vào vòng
+tiếp theo. Cứ như vậy cho tới khi tìm được nhà vô địch. Hỏi số trận đấu của
+giải là bao nhiêu.
+
+### Dữ liệu vào
+
+Một số nguyên dương x duy nhất là số lượng đội tham gia.
+
+### Dữ liệu ra
+
+Hai số nguyên tổng số trận đấu diễn ra.
+
+* Trường hợp một là đội bốc được lá thăm đặc biệt sẽ được vào thẳng vòng tiếp.
+* Trường hợp hai là đội bốc lá thăm đặc biệt sẽ bị loại.
+
+### Ví dụ
+
+| INP.TXT | OUT.TXT |
+| :-----: | :-----: |
+|    5    |   4 3   |
+
+## Bài 06
+
+Mỗi ngày đi học, Đạt xin tiền mẹ x đồng mua bánh mỳ ăn sáng. Mỗi tuần Đạt học 6
+buổi. Nhưng cứ vào ngày thứ 2 đầu tuần, Đạt chở em đi học nên mẹ cho thêm k
+đồng nữa. Tuy nhiên, thay vì ăn sang, Đạt đã tích tiền để mua quà tặng gấu. Giá
+của món quà mà Đạt muốn mua là y đồng. Hỏi buổi học thứ bao nhiêu Đạt đủ tiền
+mua quà? Biết ngày đầu tiên đi học là thứ Hai.
+
+### Dữ liệu vào
+
+3 số nguyên dương x, y, k.
+
+### Dữ liệu ra
+
+Số buổi học.
+
+### Ví dụ
+
+| INP.TXT | OUT.TXT |
+| :-----: | :-----: |
+|  2 18 3 |    7    |
+
+## Bài 07
+
+Trong cuộc bỏ phiếu rời UE, đất nước LANDENG có tổ chức cuộc trưng cầu dân ý.
+Đã có n người tham gia bỏ phiếu với số phiếu. Những người đồng ý việc rời UE sẽ
+ký hiệu phiếu số 1. Những người không đồng ý sẽ ký hiệu trên là phiếu số 2.
+Những người còn lại, có ý kiến khác đã ký hiệu trên phiếu số 3 và ghi thêm một
+số ý kiến của mình. Hãy lập trình cho biết kết quả kiểm phiếu. Biết quốc hội sẽ
+phê duyệt việc rời UE khi có trên 50% người ủng hộ việc rời UE. Do Đạt dự định
+du học sang nước UE nên muốn biết kết quả của cuộc kiểm phiếu, bạn hãy giúp Đạt
+nhé!
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên dương n là số người tham gia bỏ phiếu.
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (1 ≤ a<sub>i</sub> ≤ 3) là ký hiệu của lá phiếu của n người.
+
+### Dữ liệu ra
+
+YES nếu nước LANDENG rời UE còn NO trong trường hợp ngược lại.
+
+### Ví dụ
+
+|      INP.TXT     | OUT.TXT |
+| ---------------- | :-----: |
+| 6<br>1 3 1 2 2 1 |    NO   |
+
+## Bài 08
+
+Hôm nay đi học bé Đạt được cô giáo dạy về hình tam giác vuông. Nhà bé Đạt có n
+que diêm với độ dài lần lượt là a<sub>1</sub>, a<sub>2</sub>, ...,
+
+a<sub>n</sub>. Vì mới học nên bé Đạt muốn xem có 3 que nào có thể ghép thành
+hình tam giác vuông không? Bạn hãy lập trình giúp bé Đạt nhé!
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên dương n (n ≤ 100) là số que diêm nhà bé Đạt.
+* Dòng thứ hai  chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> là độ dài của n que diêm nhà Đạt.
+
+### Dữ liệu ra
+
+*YES* nếu có cách xếp cho bé Đạt, *NO* nếu không có.
+
+### Ví dụ
+
+|     INP.TXT    | OUT.TXT |
+| -------------- | :-----: |
+| 5<br>1 2 3 4 5 |   YES   |
+
+## Bài 09
+
+Ở trường Đạt có quen rất nhiều bạn gái. Một hôm Đạt được các bạn gái hỏi bài.
+Đề bài được đưa ra là: Cho 4 số l, r, a, b, hãy xác định số lượng số trong đoạn
+từ [l, r] mà chia hết cho cả a và b. Do hôm đó không nghe thầy giáo giảng nên
+Đạt đã không biết làm. Tuy nhiên vì không muốn mất mặt với các bạn gái nên Đạt
+đã nhờ sự trợ giúp của bạn.
+
+### Dữ liệu vào
+
+4 số nguyên dương l, r, a, b (l ≤ r ≤ 10<sup>9</sup>; a, b ≤ 1000) lần lượt là
+các số liệu của bài toán bạn gái Đạt.
+
+### Dữ liệu ra
+
+Một số duy nhất là kết quả bài toán bạn gái của Đạt.
+
+### Ví dụ
+
+|  INP.TXT  | OUT.TXT |
+| :-------: | :-----: |
+| 11 81 2 3 |    12   |
+
+## Bài 10
+
+Hôm nay lớp của Đạt lại học về dãy số cộng. Vì là người có giải quốc gia nên
+Đạt được các bạn nam trong lớp tin tưởng giao cho làm hộ một bài toán khó: Cho
+dãy n phần tử kiểm tra xem dãy có phải cấp số cộng hay không? Vì tối nay Đạt đã
+bận nhắn tin cho bạn gái nhưng cũng không muốn phụ lòng các bạn trai nên Đạt
+nhờ tới sự trợ giúp của bạn.
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên n là số lượng số trong dãy số của bạn trai Đạt.
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> lần lượt là các số nguyên trong bài toán của bạn trai Đạt.
+
+### Dữ liệu ra
+
+*YES* nếu dãy là cấp số cộng, *NO* trong trường hợp không là cấp số cộng.
+
+### Ví dụ
+
+|     INP.TXT    | OUT.TXT |
+| -------------- | :-----: |
+| 5<br>1 3 5 7 9 |   YES   |
+
+## Bài 11. Hoán vị (Permutation)
+
+Kiểm tra dãy số a<sub>1</sub>, a<sub>2</sub>, ..., a<sub>n</sub> có phải là
+hoán vị của dãy 1, 2, ..., n hay không?
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên dương n (n ≤ 10<sup>5</sup>) là số là số lượng số
+  trong dãy.
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (a<sub>i</sub> ≤ 10<sup>5</sub>).
+
+### Dữ liệu ra
+
+*YES* nếu dãy là hoán vị, *NO* trong trường hợp không là hoán vị.
+
+### Ví dụ
+
+|     INP.TXT    | OUT.TXT |
+| -------------- | :-----: |
+| 5<br>1 3 5 4 2 |   YES   |
+| 5<br>1 5 3 4 5 |    NO   |
+
+## Bài 12. Điểm danh (Mark)
+
+Một lớp có n học sinh. Hôm nay thầy giáo bắt các bạn điểm danh bằng cách đọc số
+thứ tự của mình trong lớp. Số thứ tự bạn nào được đọc lên nghĩa là bạn đó đã có
+mặt. Trong lớp có m bạn, mỗi bạn tới lượt mình tự nhớ và điểm danh số thứ tự
+a<sub>i</sub>.
+
+Hỏi những bạn có số thứ tự nào đã vắng mặt trong sổ điểm danh? 
+
+### Dữ liệu vào
+
+* Dòng đầu chứa hai số nguyên dương n, m (m ≤ n ≤ 10<sup>5</sup>).
+* Dòng thứ hai chứa m số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>m</sub> (a<sub>i</sub> ≤ n).
+
+### Dữ liệu ra
+
+* Dòng đầu là số bạn vắng p trong sổ điểm danh.
+* Dòng thứ hai chứa p số nguyên dương tăng dần là số thứ tự các bạn vắng.
+
+### Ví dụ
+
+|     INP.TXT    |  OUT.TXT |
+| -------------- | -------- |
+| 6 4<br>3 5 2 6 | 2<br>1 4 |
+
+## Bài 13. Xếp hàng khám bệnh
+
+Bệnh viện có m phòng khám. Có n bệnh nhân tới bệnh viện khám bệnh xếp hàng theo
+thứ tự. Bệnh nhân thứ i muốn vào phòng khám a<sub>i</sub>.
+
+Hãy cho biết số thứ tự của bệnh nhân thứ i tại phòng khám họ muốn vào, biết mỗi
+bệnh nhân tới đều được cấp một số thứ tự khám tại phòng là số thứ tự của người
+trước đó khám tại phòng đó cộng thêm 1 (người đầu tiên có số thứ tự là 1).
+
+### Dữ liệu vào
+
+* Dòng đầu chứa hai số nguyên dương n, m (m ≤ 100; n ≤ 10<sup>5</sup>).
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (a<sub>i</sub> ≤ 10<sup>5</sup>).
+
+### Dữ liệu ra
+
+n số nguyên t<sub>1</sub>, t<sub>2</sub>, ..., t<sub>n</sub> với t<sub>i</sub>
+là số thứ tự khám của người thứ i.
+
+### Ví dụ
+
+|        INP.TXT       |    OUT.TXT    |
+| -------------------- | ------------- |
+| 7 3<br>1 3 1 3 2 1 2 | 1 1 2 2 1 3 2 |
+
+## Bài 14. Đấu giá ngược (Reverse Auctions)
+
+Có n người tham gia trò chơi đấu giá ngược để mua chiếc iPhone 6 Plus của công ty ABC. Người thứ i đưa ra mức giá a<sub>i</sub>. Ban tổ chức muốn chọn ra một người đã đưa ra mức giá nhỏ nhất và duy nhất để trao giải.
+
+Hỏi người nhận giải thưởng đã phải trả số tiền bao nhiêu?
+
+### Dữ liệu vào
+
+* Dòng đầu chứa số nguyên dương n (n ≤ 10<sup>5</sup>).
+* Dòng thứ hai chứa n số nguyên a<sub>1</sub>, a<sub>2</sub>, ...,
+  a<sub>n</sub> (a<sub>i</sub> ≤ 10<sup>5</sup>).
+
+### Dữ liệu ra
+
+Một số nguyên duy nhất là giá mà người thắng cuộc đưa ra. Nếu không tồn tại
+người thắng cuộc, đưa ra -1.
+
+### Ví dụ
+
+|      INP.TXT     | OUT.TXT |
+| ---------------- | :-----: |
+| 6<br>4 3 2 1 2 1 |    3    |
+
+## Bài 15. Kiểm hàng siêu thị
+
+Một siêu thị kinh doanh n mặt hàng được đánh số từ 1 đến n. Mặt hàng thứ i đang
+còn số lượng là b<sub>i</sub> và mức tối thiểu cần duy trì để đảm bảo hoạt động
+kinh doanh là a<sub>i</sub>. Hệ thống thông tin của siêu thị sẽ nhận được m tín
+hiệu thuộc một trong hai loại sau:
+
+* Loại A: `1 x y` - đã nhập thêm y mặt hàng x.
+* Loại B: `2 x y` - đã bán y mặt hàng x. Nếu số lượng sản phẩm mặt hàng này
+  dưới mức an toàn thì cần nhập thêm để đạt mức a<sub>x</sub>.
+
+### Dữ liệu vào
+
+* Dòng đầu chứa hai số nguyên dương n, m.
+* n dòng tiếp theo, mỗi dòng chứa hai số tự nhiên a<sub>i</sub> và
+  b<sub>i</sub>.
+* m dòng tiếp theo, mỗi dòng chứa một thông tin loại A hoặc B.
+
+### Dữ liệu ra
+
+Với thông tin loại B, nếu số lượng sản phẩm x ở mức không an toàn, ghi ra tín
+hiệu `BUY x y` trong đó y là số sản phẩm x cần mua thêm để đạt mức an toàn.
+
+### Ví dụ
+
+| INP.TXT | OUT.TXT |
+| ------- | ------- |
+|  3 6    |         |
+|  3 4    |         |
+|  2 3    |         |
+|  4 6    |         |
+|  2 2 2  | BUY 2 1 |
+|  1 2 3  |         |
+|  2 3 1  |         |
+|  2 3 5  | BUY 3 4 |
+|  2 2 1  |         |
+|  2 1 3  | BUY 1 2 |
diff --git a/others/mkcal/README.md b/others/mkcal/README.md
index bebe188..b84cbc7 100644
--- a/others/mkcal/README.md
+++ b/others/mkcal/README.md
@@ -66,7 +66,7 @@ Hãy xếp lịch thực hiện đủ n công việc.
 
 ### Dữ liệu ra
 
-Thứ thự thực hiện của n công việc in trên một dòng.
+Thứ tự thực hiện của n công việc in trên một dòng.
 
 ### Giới hạn