about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--others/other/README.md51
-rw-r--r--others/other/colorec.pas54
-rw-r--r--others/other/gc.go13
-rw-r--r--others/other/prodig.go23
4 files changed, 141 insertions, 0 deletions
diff --git a/others/other/README.md b/others/other/README.md
index 4773407..4aaac34 100644
--- a/others/other/README.md
+++ b/others/other/README.md
@@ -601,3 +601,54 @@ Một dòng chứa số lượng hình chữ nhật đếm được.
 |                              COLOREC.INP                              | COLOREC.OUT |
 | --------------------------------------------------------------------- | :---------: |
 | 7<br>0 0 1<br>0 1 4<br>2 1 2<br>2 -1 3<br>0 -1 1<br>-1 -1 4<br>-1 1 1 |      2      |
+
+## Đếm gà và chó
+
+Hiện nay dịch cúm gia cầm đang lây lan nhưng ý thức những người buôn gia cầm
+rất yếu kém. Để qua mắt các trạm kiểm dịch, họ chở gà lẫn với chó. Một trạm
+kiểm dịch bắt được một xe chở gà và chó. Họ đếm được tất cả C chân gà và chó.
+
+### Yêu cầu
+
+Hãy cho biết số lượng từng con vật.
+
+### Dữ liệu
+
+* Gồm một dòng ghi số nguyên dương C là một số chẵn, C ≤ 100000.
+
+### Kết quả
+
+* Dòng thứ nhất ghi số S là số lời giải.
+* trong S dòng tiếp theo, mỗi dòng ghi một lời giải gồm hai số P, Q có nghĩa là
+  có P gà và Q chó.
+
+### Ví dụ
+
+| Input |         Output         |
+| :---: | ---------------------- |
+|   10  | 3<br>5 0<br>3 1<br>1 2 |
+
+## Tích các chữ số
+
+Gọi P(a) là hàm tính tích các chữ số của a. Cho một số nguyên không âm N, hãy
+tìm số nguyên dương a nhỏ nhất sao cho P(a) = N.
+
+### Dữ liệu
+
+* Dòng đầu tiên gồm một số nguyên T, số lượng test.
+* T dòng tiếp theo, mỗi dòng gồm một số nguyên N.
+
+### Kết quả
+
+In ra T dòng, mỗi dòng gồm một số nguyên là kết quả của mỗi test.
+
+### Giới hạn
+
+* 1 ≤ T ≤ 1000.
+* 0 ≤ P ≤ 10<sup>15</sup>.
+
+### Ví dụ
+
+| Sample Input | Sample Output |
+| ------------ | ------------- |
+| 2<br>1<br>10 |    1<br>25    |
diff --git a/others/other/colorec.pas b/others/other/colorec.pas
new file mode 100644
index 0000000..a6931aa
--- /dev/null
+++ b/others/other/colorec.pas
@@ -0,0 +1,54 @@
+type
+  pointtype = record
+    x, y: int16
+  end;
+
+var
+  f: text;
+  n, i, j: int32;
+  count: int32 = 0;
+  c, k: int8;
+  color: array[-200..200, -200..200] of int8;
+  points: array[1..4, 1..100000] of pointtype;
+  len: array[1..4] of int16 = (0, 0, 0, 0);
+
+function colorec(var a, b: pointtype): boolean;
+  begin
+    colorec := [color[a.x, b.y], color[b.x, a.y],
+                color[a.x, a.y], color[b.x, b.y]] = [1, 2, 3, 4]
+  end;
+
+begin
+  for i := -200 to 200 do
+    for j := -200 to 200 do
+      color[i, j] := 0;
+  assign(f, 'COLOREC.INP');
+  reset(f);
+  readln(f, n);
+  repeat
+    readln(f, i, j, c);
+    color[i, j] := c;
+    inc(len[c]);
+    points[c, len[c]].x := i;
+    points[c, len[c]].y := j
+  until eof(f);
+  close(f);
+
+  for k := 1 to 4 do
+    if len[k] <= n then
+      begin
+        c := k;
+        n := len[c]
+      end;
+  for i := 1 to n do
+    for k := 1 to 4 do
+      if k <> c then
+        for j := 1 to len[k] do
+          if colorec(points[c, i], points[k, j]) then
+            inc(count);
+
+  assign(f, 'COLOREC.OUT');
+  rewrite(f);
+  writeln(f, count);
+  close(f)
+end.
diff --git a/others/other/gc.go b/others/other/gc.go
new file mode 100644
index 0000000..38473a2
--- /dev/null
+++ b/others/other/gc.go
@@ -0,0 +1,13 @@
+package main
+
+import "fmt"
+
+func main() {
+	var c int32
+	fmt.Scan(&c)
+	k := c/4 + 1
+	println(k)
+	for ; k > 0; k-- {
+		println(c/2-k*2+2, k)
+	}
+}
diff --git a/others/other/prodig.go b/others/other/prodig.go
new file mode 100644
index 0000000..e269ee1
--- /dev/null
+++ b/others/other/prodig.go
@@ -0,0 +1,23 @@
+package main
+
+import "fmt"
+
+func main() {
+	var T, N int
+	fmt.Scan(&T)
+	for ; T > 0; T-- {
+		var s string
+		fmt.Scan(&N)
+		for i := 9; i > 1; i-- {
+			for N%i == 0 {
+				N /= i
+				s = fmt.Sprint(i) + s
+			}
+		}
+		if len(s) > 0 {
+			println(s)
+		} else {
+			println(1)
+		}
+	}
+}