From 2a7bc10f6c011d19fb3b0e73068f7e1a9c30ace0 Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Sat, 8 Oct 2016 09:56:43 +0700 Subject: Initial commit --- 10/CSP-KT2/DeThiLan2.pdf | Bin 0 -> 818820 bytes 10/CSP-KT2/dcount.c | 27 +++++++ 10/CSP-KT2/hamming.c | 27 +++++++ 10/CSP-KT2/negpairs.c | 24 ++++++ 10/CSP-KT2/sumarv.c | 19 +++++ 10/CSP-KT2/zpairs.c | 28 +++++++ "10/l\341\272\255p-l\341\273\213ch/ctmt.pas" | 86 +++++++++++++++++++++ "10/l\341\272\255p-l\341\273\213ch/llgc2m.pas" | 44 +++++++++++ .../l\341\272\255p-l\341\273\213ch.pdf" | Bin 0 -> 52261 bytes "10/l\341\272\255p-l\341\273\213ch/xepviec.pas" | 53 +++++++++++++ 10 files changed, 308 insertions(+) create mode 100644 10/CSP-KT2/DeThiLan2.pdf create mode 100644 10/CSP-KT2/dcount.c create mode 100644 10/CSP-KT2/hamming.c create mode 100644 10/CSP-KT2/negpairs.c create mode 100644 10/CSP-KT2/sumarv.c create mode 100644 10/CSP-KT2/zpairs.c create mode 100755 "10/l\341\272\255p-l\341\273\213ch/ctmt.pas" create mode 100755 "10/l\341\272\255p-l\341\273\213ch/llgc2m.pas" create mode 100755 "10/l\341\272\255p-l\341\273\213ch/l\341\272\255p-l\341\273\213ch.pdf" create mode 100755 "10/l\341\272\255p-l\341\273\213ch/xepviec.pas" (limited to '10') diff --git a/10/CSP-KT2/DeThiLan2.pdf b/10/CSP-KT2/DeThiLan2.pdf new file mode 100644 index 0000000..6940278 Binary files /dev/null and b/10/CSP-KT2/DeThiLan2.pdf differ diff --git a/10/CSP-KT2/dcount.c b/10/CSP-KT2/dcount.c new file mode 100644 index 0000000..e851210 --- /dev/null +++ b/10/CSP-KT2/dcount.c @@ -0,0 +1,27 @@ +#include + +/* More than 8MB is used by this program, for *efficiency*. */ + +int main() +{ + long n, i, a0, m = 0, max = 0; + long a[100001] = {}, b[100001]; + + scanf("%ld", &n); + for (i = 0; i < n; i++) { + scanf("%ld", &a0); + if (!a[a0]) { + b[m] = a0; + m++; + } + a[a0]++; + } + + for (i = 0; i < m; i++) + if (a[b[i]] > max) + max = a[b[i]]; + + printf("%ld %ld\n", m, max); + + return 0; +} diff --git a/10/CSP-KT2/hamming.c b/10/CSP-KT2/hamming.c new file mode 100644 index 0000000..645eb17 --- /dev/null +++ b/10/CSP-KT2/hamming.c @@ -0,0 +1,27 @@ +#include + +char *hamming(long m) +{ + while (m % 5 == 0) + m /= 5; + while (m % 3 == 0) + m /= 3; + while (m % 2 == 0) + m /= 2; + return (m > 1) ? "NO" : "YES"; +} + +int main() +{ + short n, i; + long a[10000]; + + scanf("%hd", &n); + for (i = 0; i < n; i++) + scanf("%ld", &a[i]); + + for (i = 0; i < n; i++) + printf("%s\n", hamming(a[i])); + + return 0; +} diff --git a/10/CSP-KT2/negpairs.c b/10/CSP-KT2/negpairs.c new file mode 100644 index 0000000..577fdf8 --- /dev/null +++ b/10/CSP-KT2/negpairs.c @@ -0,0 +1,24 @@ +#include + +int main() +{ + long n, i; + long unsigned_a[201] = {}; + long *a = &unsigned_a[100]; + char a0; + long long v; + + scanf("%ld", &n); + for (i = 0; i < n; i++) { + scanf("%hhd", &a0); + a[a0]++; + } + + v = a[0] * (a[0] - 1) / 2; + for (i = 1; i <= 100; i++) + v += a[i] * a[-i]; + + printf("%lld\n", v); + + return 0; +} diff --git a/10/CSP-KT2/sumarv.c b/10/CSP-KT2/sumarv.c new file mode 100644 index 0000000..3e5bc7e --- /dev/null +++ b/10/CSP-KT2/sumarv.c @@ -0,0 +1,19 @@ +#include + +int main() +{ + short n, i; + long b[10001] = {}; + + scanf("%hd", &n); + for (i = 1; i <= n; i++) { + scanf("%ld", &b[i]); + b[i] *= i; + } + + for (i = 1; i <= n; i++) + printf("%ld ", b[i] - b[i - 1]); + printf("\n"); + + return 0; +} diff --git a/10/CSP-KT2/zpairs.c b/10/CSP-KT2/zpairs.c new file mode 100644 index 0000000..d0d6186 --- /dev/null +++ b/10/CSP-KT2/zpairs.c @@ -0,0 +1,28 @@ +#include + +int main() +{ + short m, n, i, j, v = 0; + long a[10000], b; + + scanf("%hd %hd", &n, &m); + for (i = 0; i < n; i++) + scanf("%ld", &a[i]); + + i = 0; + for (j = 0; j < m; j++) { + if (i >= n) + break; + scanf("%ld", &b); + while (b > a[i]) + i++; + if (b == a[i]) { + v++; + i++; + } + } + + printf("%hd\n", v); + + return 0; +} diff --git "a/10/l\341\272\255p-l\341\273\213ch/ctmt.pas" "b/10/l\341\272\255p-l\341\273\213ch/ctmt.pas" new file mode 100755 index 0000000..bdd30f0 --- /dev/null +++ "b/10/l\341\272\255p-l\341\273\213ch/ctmt.pas" @@ -0,0 +1,86 @@ +const + inp = 'ctmt.inp'; + out = 'ctmt.out'; +type + int200 = 1..200; + intday = 0..8640000; +var + f : text; + n, i, j, ln2, ln3 : int200; + a, b : array[1..200] of intday; + p, q, r, s , max0, max1 : intday; + ln0, ln1 : 0..1; +procedure swab(i0, j0 : int200); + var tmp : intday; + begin + tmp := a[i0]; + a[i0] := a[j0]; + a[j0] := tmp; + tmp := b[i0]; + b[i0] := b[j0]; + b[j0] := tmp + end; +procedure del(m : int200); + var o : int200; + begin + dec(n); + for o := m to n do + begin + a[o] := a[o + 1]; + b[o] := b[o + 1] + end + end; +begin + assign(f, inp); + reset(f); + readln(f, n); + for i := 1 to n do + readln(f, a[i], b[i]); + readln(f, p, q); + readln(f, r, s); + close(f); + for i := 1 to n - 1 do + for j := i + 1 to n do + if a[i] > a[j] then swab(i, j); + i := 1; + while i < n do + begin + j := i + 1; + while j <= n do + begin + if (a[j] <= b[i]) and (b[i] <= b[j]) then + begin + b[i] := b[j]; + del(j) + end + else inc(j) + end; + inc(i) + end; + ln0 := 0; + ln1 := 0; + max0 := 0; + max1 := 0; + for i := 1 to n do + begin + if (a[i] <= p) and (q <= b[i]) then ln0 := 1; + if (i < n) and (b[i] < r) and (s < a[i + 1]) then ln1 := 1; + if b[i] - a[i] >= max0 then + begin + ln2 := i; + max0 := b[i] - a[i] + end; + if (i < n) and (a[i + 1] - b[i] > max1) then + begin + ln3 := i; + max1 := a[i + i] - b[i] + end + end; + assign(f, out); + rewrite(f); + writeln(f, ln0); + writeln(f, ln1); + writeln(f, a[ln2], ' ', b[ln2]); + writeln(f, b[ln3] + 1, ' ', a[ln3 + 1] - 1); + close(f) +end. diff --git "a/10/l\341\272\255p-l\341\273\213ch/llgc2m.pas" "b/10/l\341\272\255p-l\341\273\213ch/llgc2m.pas" new file mode 100755 index 0000000..3fc8ef2 --- /dev/null +++ "b/10/l\341\272\255p-l\341\273\213ch/llgc2m.pas" @@ -0,0 +1,44 @@ +uses math; +var + f : text; + n, i : byte; + a, b, c, c0 : array[1..255] of byte; + d : array[1..255] of boolean; + out : cardinal; +procedure libgc2m(m : byte; o0, o1 : cardinal); + var j : byte; + begin + if m > 0 then begin + for j := 1 to n do + if d[j] then begin + d[j] := false; + c[n - m + 1] := j; + libgc2m(m - 1, o0 + a[j], max(o0 + a[j], o1) + b[j]); + d[j] := true; + end + end else + if (o1 < out) or (out = 0) then begin + out := o1; + for j := 1 to n do c0[j] := c[j] + end + end; +begin + assign(f, 'llgc2m.inp'); + reset(f); + readln(f, n); + for i := 1 to n do read(f, a[i], b[i]); + close(f); + for i := 1 to n do d[i] := true; + out := 0; + for i := 1 to n do begin + d[i] := false; + c[1] := i; + libgc2m(n - 1, a[i], a[i] + b[i]); + d[i] := true + end; + assign(f, 'llgc2m.out'); + rewrite(f); + writeln(f, out); + for i := 1 to n do write(f, c0[i], ' '); + close(f) +end. diff --git "a/10/l\341\272\255p-l\341\273\213ch/l\341\272\255p-l\341\273\213ch.pdf" "b/10/l\341\272\255p-l\341\273\213ch/l\341\272\255p-l\341\273\213ch.pdf" new file mode 100755 index 0000000..48ad249 Binary files /dev/null and "b/10/l\341\272\255p-l\341\273\213ch/l\341\272\255p-l\341\273\213ch.pdf" differ diff --git "a/10/l\341\272\255p-l\341\273\213ch/xepviec.pas" "b/10/l\341\272\255p-l\341\273\213ch/xepviec.pas" new file mode 100755 index 0000000..cfa39d6 --- /dev/null +++ "b/10/l\341\272\255p-l\341\273\213ch/xepviec.pas" @@ -0,0 +1,53 @@ +const + inp = 'xepviec.inp'; + out = 'xepviec.out'; +type int200 = 0..200; +var + f : text; + n, i, j, k, l, tmp : int200; + a : array[0..200, 0..200] of int200; +function next(m : int200) : boolean; + var i0, j0 : int200; + begin + for i0 := 1 to a[0, 0] do + for j0 := 2 to a[i0, 0] do + if m = a[i0, j0] then exit(false); + next := true; + end; +begin + assign(f, inp); + reset(f); + readln(f, n); + i := 0; + repeat + inc(i); + j := 0; + repeat + inc(j); + read(f, a[i, j]) + until eoln(f); + a[i, 0] := j + until eof(f); + close(f); + a[0, 0] := i - 1; + for i := 1 to n do + for j := 1 to a[0, 0] do + if (a[j, 0] > 0) and next(a[j, 1]) then + begin + tmp := a[j, 1]; + a[0, i] := tmp; + for k := 1 to a[0, 0] do + if a[k, 1] = tmp then + begin + dec(a[k, 0]); + for l := 1 to a[k, 0] do + a[k, l] := a[k, l + 1] + end; + break + end; + assign(f, out); + rewrite(f); + for i := 1 to n do + write(f, a[0, i], ' '); + close(f) +end. -- cgit 1.4.1