diff options
Diffstat (limited to 'others')
-rw-r--r-- | others/other/README.md | 51 | ||||
-rw-r--r-- | others/other/colorec.pas | 54 | ||||
-rw-r--r-- | others/other/gc.go | 13 | ||||
-rw-r--r-- | others/other/prodig.go | 23 |
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) + } + } +} |