0251 - Interclasare 2
Cerinţa[edit | edit source]
Se dau două şiruri a
şi b
, cu n
, respectiv m
elemente, numere naturale, ordonate strict crescător. Să se afişeze, în ordine strict crescătoare, valorile existente în ambele şiruri.
Date de intrare[edit | edit source]
Fişierul de intrare interclasare2.in
conţine pe prima linie numărul n
; urmează n
numere naturale, ordonate strict crescător, ce pot fi dispuse pe mai multe linii. Linia următoare conţine numărul m
şi urmează m
numere naturale, ordonate strict crescător, ce pot fi dispuse pe mai multe linii.
Date de ieşire[edit | edit source]
Fişierul de ieşire interclasare2.out
va conţine, în ordine strict crescătoare, valorile existente în ambele şiruri. Aceste valori vor fi afişate câte 10
pe o linie, separate prin spaţii. Ultima linie poate conţine mai puţin de 10
de valori.
Restricţii şi precizări[edit | edit source]
1 ≤ n,m ≤ 100.000
- valorile elementelor celor două şiruri vor fi mai mici decât
1.000.000
Exemplu:[edit | edit source]
interclasare2.in
7 1 3 4 7 20 24 60 9 3 5 7 8 9 10 12 20 24
interclasare2.out
3 7 20 24
Încărcare soluție[edit | edit source]
Lipește codul aici[edit | edit source]
<syntaxhighlight lang="python" line="1"> const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('interclasare2.in'),
output: fs.createWriteStream('interclasare2.out')
});
let a = new Array(100001);
let b = new Array(100001);
let c = new Array(200001);
let n, m, k, i, j;
rl.on('line', (line) => {
const values = line.split(' ');
if (n === undefined) {
n = parseInt(values[0]);
for (let i = 1; i <= n; i++) {
a[i] = parseInt(values[i]);
}
} else if (m === undefined) {
m = parseInt(values[0]);
for (let j = 1; j <= m; j++) {
b[j] = parseInt(values[j]);
}
i = 1;
j = 1;
k = 0;
while (i <= n && j <= m) {
if (a[i] === b[j]) {
c[++k] = a[i++];
j++;
} else if (a[i] < b[j]) {
i++;
} else {
j++;
}
}
for (let t = 1; t <= k; t++) {
rl.output.write(c[t] + ' ');
if (t % 10 === 0) {
rl.output.write('\n');
}
}
rl.output.write('\n');
rl.close();
}
});
</syntaxhighlight>