*** этот файл мы должны назвать nekkit20.pas *** *** после его компиляции будет создан модуль ***
unit nekkit20;
type tra=(string,integer);
function RomeToArab(s:string):integer; // Перевод римских чисел (не больших MMMCMXCIX) в арабские begin var ar:='IVXLCDM'; var aa:=Arr(1,5,10,50,100,500,1000); var n:=0; Result:=0; foreach var c in s do begin var c1:=n; n:=aa[Pos(c,ar)-1]; Result+=n+(n>c1?-2*c1:0) end; end;
function Equal(r:array of string; a:array of integer):sequence of tra; // Возвращает последовательность кортежей // из массива римских чисел (массив r), // для которых есть соответствие в массиве арабских чисел (массив a) begin foreach var q in r do begin var n:=RomeToArab(q); if a.IndexOf(n)>-1 then yield((q,n)) end end;
end.
*** а это другой файл с любым именем, кроме nekkit20 *** *** он обращается к молулю nekkit20 ***
uses nekkit20;
begin var sr:=Arr('DXVIII','LXIII','MII','XIV','LXXXVIII','CXCVI'); var ar:=Arr(14,98,196,1002,518,64,87); var R:=Equal(sr,ar); if R.Count=-1 then Writeln('Нет совпадений') else foreach var t in R do Writeln(t[0],' = ',t[1]) end.
void swap (int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
void printArray (int arr[], int n) { int i; for (i = 0; i < n; i++) printf("%3d ", arr[i]); printf("\n"); }
void randomize ( int arr[], int n ) { long long x; asm("rdtsc" : "=A"(x)); srand(x); int i; for (i = n - 1; i > 0; i--) { int j = rand() % (i+1); swap(&arr[i], &arr[j]); } }
int main() { setlocale(LC_ALL, "Rus"); int A[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int B[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int C[10];
ответ-
344 бита
43 байта