aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael McSinyx <vn.mcsinyx@gmail.com>2017-08-02 10:44:26 +0700
committerRaphael McSinyx <vn.mcsinyx@gmail.com>2017-08-02 10:44:26 +0700
commit44f9d4b8e63d4f7f1b447744124e95f22c8ce296 (patch)
treebbeb1869e269819722ed1b3d82050c03d31e9d9f
parent03592e34c45c0ee5d8a3d82e76b4361813fcba7a (diff)
downloadcp-44f9d4b8e63d4f7f1b447744124e95f22c8ce296.tar.gz
Add others/other/{colorec.pas,gc.go,prodig.go}
-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)
+ }
+ }
+}