diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-11-06 21:53:13 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2016-11-06 21:53:13 +0700 |
commit | 1f06cc322606e86918fefa1f707b54264e9ce0a9 (patch) | |
tree | c8296702752782e04cd26669e0c35dba6949f439 /others/lập-lịch/xepviec.pas | |
parent | b4b3cebf0ee4a22e4950f9c35cb7ef5e62be4103 (diff) | |
download | cp-1f06cc322606e86918fefa1f707b54264e9ce0a9.tar.gz |
Add others/dict
Diffstat (limited to 'others/lập-lịch/xepviec.pas')
-rwxr-xr-x | others/lập-lịch/xepviec.pas | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/others/lập-lịch/xepviec.pas b/others/lập-lịch/xepviec.pas new file mode 100755 index 0000000..cfa39d6 --- /dev/null +++ b/others/lập-lịch/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. |