diff options
-rw-r--r-- | 09/Q-Huế-2014/README.md (renamed from 9/Q-Huế-2014/README.md) | 0 | ||||
-rw-r--r-- | 09/Q-Huế-2014/bai1.pas (renamed from 9/Q-Huế-2014/bai1.pas) | 0 | ||||
-rw-r--r-- | 09/Q-Huế-2014/bai2.pas (renamed from 9/Q-Huế-2014/bai2.pas) | 0 | ||||
-rw-r--r-- | 09/Q-Huế-2014/bai3.pas (renamed from 9/Q-Huế-2014/bai3.pas) | 0 | ||||
-rw-r--r-- | 09/TP-HN-2014/README.md (renamed from 9/TP-HN-2014/README.md) | 0 | ||||
-rw-r--r-- | 09/TP-HN-2014/cau1.pas (renamed from 9/TP-HN-2014/cau1.pas) | 0 | ||||
-rw-r--r-- | 09/TP-HN-2014/cau2.pas (renamed from 9/TP-HN-2014/cau2.pas) | 0 | ||||
-rw-r--r-- | 09/TP-HN-2014/cau3.pas (renamed from 9/TP-HN-2014/cau3.pas) | 0 | ||||
-rw-r--r-- | 09/TP-HN-2014/cau4.pas (renamed from 9/TP-HN-2014/cau4.pas) | 0 | ||||
-rw-r--r-- | NTU/README.md | 4 | ||||
-rw-r--r-- | NTU/editpic.c | 30 | ||||
-rw-r--r-- | NTU/pali2.c | 68 | ||||
-rw-r--r-- | README.md | 20 |
13 files changed, 109 insertions, 13 deletions
diff --git a/9/Q-Huế-2014/README.md b/09/Q-Huế-2014/README.md index 2da9e8e..2da9e8e 100644 --- a/9/Q-Huế-2014/README.md +++ b/09/Q-Huế-2014/README.md diff --git a/9/Q-Huế-2014/bai1.pas b/09/Q-Huế-2014/bai1.pas index 7bd0d92..7bd0d92 100644 --- a/9/Q-Huế-2014/bai1.pas +++ b/09/Q-Huế-2014/bai1.pas diff --git a/9/Q-Huế-2014/bai2.pas b/09/Q-Huế-2014/bai2.pas index 172137d..172137d 100644 --- a/9/Q-Huế-2014/bai2.pas +++ b/09/Q-Huế-2014/bai2.pas diff --git a/9/Q-Huế-2014/bai3.pas b/09/Q-Huế-2014/bai3.pas index 91fc05f..91fc05f 100644 --- a/9/Q-Huế-2014/bai3.pas +++ b/09/Q-Huế-2014/bai3.pas diff --git a/9/TP-HN-2014/README.md b/09/TP-HN-2014/README.md index 8a21e84..8a21e84 100644 --- a/9/TP-HN-2014/README.md +++ b/09/TP-HN-2014/README.md diff --git a/9/TP-HN-2014/cau1.pas b/09/TP-HN-2014/cau1.pas index 466d4c4..466d4c4 100644 --- a/9/TP-HN-2014/cau1.pas +++ b/09/TP-HN-2014/cau1.pas diff --git a/9/TP-HN-2014/cau2.pas b/09/TP-HN-2014/cau2.pas index aed61ed..aed61ed 100644 --- a/9/TP-HN-2014/cau2.pas +++ b/09/TP-HN-2014/cau2.pas diff --git a/9/TP-HN-2014/cau3.pas b/09/TP-HN-2014/cau3.pas index 1785da9..1785da9 100644 --- a/9/TP-HN-2014/cau3.pas +++ b/09/TP-HN-2014/cau3.pas diff --git a/9/TP-HN-2014/cau4.pas b/09/TP-HN-2014/cau4.pas index 1e79c04..1e79c04 100644 --- a/9/TP-HN-2014/cau4.pas +++ b/09/TP-HN-2014/cau4.pas diff --git a/NTU/README.md b/NTU/README.md index 8261d6c..1caccf3 100644 --- a/NTU/README.md +++ b/NTU/README.md @@ -7,7 +7,7 @@ - [x] writer: [Robot đánh chữ](http://laptrinh.ntu.edu.vn/Problem/Details/3255) - [x] ngto4: [Tổng nguyên tố](http://laptrinh.ntu.edu.vn/Problem/Details/3256) - [x] demso0: [Đếm số không bên phải](http://laptrinh.ntu.edu.vn/Problem/Details/3330) -- [ ] pali2: [Tách chuỗi đối xứng](http://laptrinh.ntu.edu.vn/Problem/Details/3332) +- [x] pali2: [Tách chuỗi đối xứng](http://laptrinh.ntu.edu.vn/Problem/Details/3332) - [x] moco: [Khu mộ cổ](http://laptrinh.ntu.edu.vn/Problem/Details/3343) - [x] dayso6: [Dãy số](http://laptrinh.ntu.edu.vn/Problem/Details/3344) - [x] keba2: [Kết bạn](http://laptrinh.ntu.edu.vn/Problem/Details/3345) @@ -25,6 +25,6 @@ - [ ] hamar: [Hàm số](http://laptrinh.ntu.edu.vn/Problem/Details/5557) - [x] xauduynhat: [Xâu duy nhất](http://laptrinh.ntu.edu.vn/Problem/Details/5573) - [x] chenhlech: [Chênh lệch](http://laptrinh.ntu.edu.vn/Problem/Details/5574) -- [ ] editpic: [Chỉnh sửa ảnh](http://laptrinh.ntu.edu.vn/Problem/Details/5588) +- [x] editpic: [Chỉnh sửa ảnh](http://laptrinh.ntu.edu.vn/Problem/Details/5588) - [ ] cntpalin: [Đếm số Palindrome](http://laptrinh.ntu.edu.vn/Problem/Details/5600) - [x] TutOnEqua: [Tutoring on equations](http://laptrinh.ntu.edu.vn/Problem/Details/5606) diff --git a/NTU/editpic.c b/NTU/editpic.c new file mode 100644 index 0000000..5e34d74 --- /dev/null +++ b/NTU/editpic.c @@ -0,0 +1,30 @@ +#include <stdio.h> + +const long long POW2[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, + 4096, 8192, 16384, 32768, 65536, 131072, 262144, + 524288, 1048576, 2097152, 4194304, 8388608, 16777216, + 33554432, 67108864, 134217728, 268435456, 536870912}; + +int main() +{ + long long l, w, l0, w0, l1, w1; + char i; + + scanf("%lld %lld", &l, &w); + + for (i = 29; POW2[i] > l || POW2[i] * 4 > w * 5; i--); + l0 = POW2[i]; + w0 = (l0 * 5 >= w * 4) ? w : l0 * 5 / 4; + + for (i = 29; POW2[i] > w || POW2[i] * 4 > l * 5; i--); + w1 = POW2[i]; + l1 = (w1 * 5 >= l * 4) ? l : w1 * 5 / 4; + + l = l0 * w0 - l1 * w1; + if (l > 0 || !l && l0 > l1) + printf("%lld %lld\n", l0, w0); + else + printf("%lld %lld\n", l1, w1); + + return 0; +} diff --git a/NTU/pali2.c b/NTU/pali2.c new file mode 100644 index 0000000..72c9105 --- /dev/null +++ b/NTU/pali2.c @@ -0,0 +1,68 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +short MIN_K, *P; + +void putnc(char *s, short len) +{ + short i; + + for (i = 0; i < len; i++) + putchar(s[i]); + putchar(10); +} + +char palin(char *s, short len) +{ + short i; + + for (i = 0; i < (len + 1) / 2; i++) + if (s[i] != s[len - i - 1]) + return 0; + + return 1; +} + +void foo(char *s, short len, short k, short *p) +{ + short i, j; + + if (palin(s, len)) { + MIN_K = k; + memcpy(P, p, k * sizeof(short)); + return; + } + + if (k >= MIN_K) + return; + + for (i = len - 1; i; i--) + if (palin(s, i)) { + p[k] = p[k - 1] + i; + foo(s + i, len - i, k + 1, p); + } +} + +int main() +{ + short n, i, *p; + char *s; + + scanf("%hd\n", &n); + s = malloc(n + 1); + fgets(s, n + 1, stdin); + + MIN_K = n; + P = malloc(n); + p = malloc(n); + p[0] = 0; + foo(s, n, 1, p); + + printf("%hd\n", MIN_K); + for (i = 1; i < MIN_K; i++) + putnc(s + P[i - 1], P[i] - P[i - 1]); + puts(s + P[MIN_K - 1]); + + return 0; +} diff --git a/README.md b/README.md index 6fcb262..03a3bae 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ Bài tập luyện tập thi Olympic, học sinh giỏi Tin học, trong đó: -| Thư mục | Nguồn đề bài | -| --------------------- | --------------------------------- | -| `9`, `10`, `11`, `12` | Đề thi, kiểm tra phân theo lớp | -| `COCI` | [Giải Tin học Croatia mở rộng][0] | -| `NTU` | [Đại học Nha Trang][1] | -| `THT` | Hội thi Tin học trẻ | -| `codeforces` | [Codeforces][2] | -| `daily` | [/r/dailyprogrammer][3] | -| `others` | Các đề bài không rõ nguồn | +| Thư mục | Nguồn đề bài | +| ---------------------- | --------------------------------- | +| `09`, `10`, `11`, `12` | Đề thi, kiểm tra phân theo lớp | +| `COCI` | [Giải Tin học Croatia mở rộng][0] | +| `NTU` | [Đại học Nha Trang][1] | +| `THT` | Hội thi Tin học trẻ | +| `codeforces` | [Codeforces][2] | +| `daily` | [/r/dailyprogrammer][3] | +| `others` | Các đề bài không rõ nguồn | [0]: http://www.hsin.hr/coci/ [1]: http://laptrinh.ntu.edu.vn/ @@ -24,8 +24,6 @@ nhật dần. Bài làm trên Pascal được được dịch thử trên FPC 2.6 trở lên, bài viết trên C được dịch trên GCC 6 trở lên, bài làm trên Python chạy thử trên Python 3.5. -Các commit message có dạng: `<đường dẫn>: <Nội dung thay đổi>`. - Tất cả các bài làm được phát hành theo giấy phép [GPLv3](LICENSE), cho phép người dùng chạy, nghiên cứu, chia sẻ và chỉnh sửa tự do. Các đề bài hầu như không rõ điều khoản sử dụng. |