Informatică, întrebare adresată de AndyFcaa, 9 ani în urmă

Cerinţa
Se dau două şiruri, cu n, respectiv m, elemente, numere naturale. Primul şir este ordonat crescător, iar al doilea element este ordonat descrescător. Să se afişeze, în ordine crescătoare, valorile pare din cele două şiruri.

Date de intrare
Fişierul de intrare interclasare3.in conţine pe prima linie numerele n şi m; urmează n numere naturale separate prin spaţii, dispuse pe mai multe linii, ordonate crescător; urmează m numere naturale separate prin spaţii, dispuse pe mai multe linii, ordonate descrescător.

Date de ieşire
Fişierul de ieşire interclasare3.out va conţine valorile pare din cele două şiruri, ordonate crescător, câte 20 de valori pe o linie, valorile de pe aceeaşi linie fiind separate printr-un spaţiu.

Restricţii şi precizări
1 ≤ n,m ≤ 100000;
elementele celor două şiruri vor avea cel mult 9 cifre;
în cel puţin şir va exista minim un element par;

Exemplu
interclasare3.in

5 8
2 4 7 37 42
88 88 67 45 42 32 4 1
interclasare3.out

2 4 4 32 42 42 88 88
dau coroana daca merge !!!!!!!!!!!


daba: ba
daba: nvm

Răspunsuri la întrebare

Răspuns de daba
3
Ceva nu a mers cum trebuie în timpul adăugării răspunsului tău
Răspunsul tău nu poate fi gol
Anexe:

daba: ;)
daba: daca vrei si codul trimite-mi mesaj privat
daba: deci nu vrei sa iti dau si paste la cod in privat sa inteleg
AndyFcaa: ms
Răspuns de stassahul
1
var 

 a,b,c:array of integer;
 n,m,i,p1,p2,l,min,max:integer;
 t:text;
 
begin
 
 assign(t,'interclasare3.in');
 reset(t);
 
 read(t,n,m);
 setlength(a,n);
 setlength(b,m);
 
 for i:=0 to n-1 do
  begin
  read(t,a[i]);
  if a[i] mod 2 = 0 then inc(p1);
  end;

 for i:=0 to m-1 do 
  begin
  read(t,b[i]);
  if b[i] mod 2 = 0 then inc(p2);
  end;
 
 close(t);
 
 assign(t,'interclasare3.out');
 rewrite(t);
 
 setlength(c,p1+p2);
 l:=0;
 
 for i:=0 to n-1 do
  if a[i] mod 2 = 0 then
   begin
   c[l]:=a[i];
   inc(l);
   end;
 
 for i:=0 to m-1 do
  if b[i] mod 2 = 0 then
   begin
   c[l]:=b[i];
   inc(l);
   end;
   
 min:=c[1];
 max:=c[2];
 
 for i:=0 to l-1 do
  begin
  if c[i]<min then min:=c[i];
  if c[i]>max then max:=c[i];
  end;
 
 for min:=min to max do
  for i:=0 to l-1 do
   if c[i]=min then write(t,c[i],' ');
 
 close(t);
  
end.

AndyFcaa: ms
Alte întrebări interesante