Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.)[4][5]. Применение этого стандарта позволяет закодировать очень большое число символов из разных систем письменности: в документах, закодированных по стандарту Юникод, могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, символы музыкальной нотной нотации, при этом становится ненужным переключение кодовых страниц[6].
Стандарт состоит из двух основных частей: универсального набора символов (англ. Universal character set, UCS) и семейства кодировок (англ. Unicode transformation format, UTF). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F. Семейство кодировок определяет преобразования кодов символов для передачи в потоке или в файле.
Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII, и коды этих символов совпадают с их кодами в ASCII. Далее расположены области символов других систем письменности, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем[7]. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F (см. Кириллица в Юникоде)[8].
Var n, k, t, i, counter, j: int64; c: array[1..10]of int64; a: array[1..100000]of int64; ar: array[1..10, 1..100000]of int64; count: array[1..10]of int64; b: boolean;
label l1;
begin b := true; counter := 0; read(n, k, t); for i := 1 to n do read(c[i]); for i := 1 to k do read(a[i]); l1: while (counter <> k) do begin for j := 1 to n do begin for i := 1 to c[j] do begin if(ar[j, i] <= a[counter + 1]) then begin ar[j, i] := t + a[counter + 1]; counter := counter + 1; count[j] := count[j] + 1; b := false; goto l1; end; end; end; if(b = true) then counter := counter + 1; b := true; end; for i := 1 to n do write(count[i], ' '); end.
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.)[4][5]. Применение этого стандарта позволяет закодировать очень большое число символов из разных систем письменности: в документах, закодированных по стандарту Юникод, могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, символы музыкальной нотной нотации, при этом становится ненужным переключение кодовых страниц[6].
Стандарт состоит из двух основных частей: универсального набора символов (англ. Universal character set, UCS) и семейства кодировок (англ. Unicode transformation format, UTF). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F. Семейство кодировок определяет преобразования кодов символов для передачи в потоке или в файле.
Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII, и коды этих символов совпадают с их кодами в ASCII. Далее расположены области символов других систем письменности, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем[7]. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F (см. Кириллица в Юникоде)[8].
с инета
n, k, t, i, counter, j: int64;
c: array[1..10]of int64;
a: array[1..100000]of int64;
ar: array[1..10, 1..100000]of int64;
count: array[1..10]of int64;
b: boolean;
label l1;
begin
b := true;
counter := 0;
read(n, k, t);
for i := 1 to n do read(c[i]);
for i := 1 to k do read(a[i]);
l1:
while (counter <> k) do
begin
for j := 1 to n do
begin
for i := 1 to c[j] do
begin
if(ar[j, i] <= a[counter + 1]) then
begin
ar[j, i] := t + a[counter + 1];
counter := counter + 1;
count[j] := count[j] + 1;
b := false;
goto l1;
end;
end;
end;
if(b = true) then counter := counter + 1;
b := true;
end;
for i := 1 to n do write(count[i], ' ');
end.