fbpx

Problema #242 – InterclasM – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un număr natural x și două șiruri a și b, cu n, respectiv m elemente, numere naturale, ordonate strict crescător. Să se afișeze, în ordine crescătoare, multiplii lui x care se află doar în unul dintre cele două șiruri.

Date de intrare

Fișierul de intrare interclasm.in conține pe prima linie numărul x, pe linia a doua numărul n; urmează n numere naturale, ordonate crescător, ce pot fi dispuse pe mai multe linii. Linia următoare conține numărul m și urmează m numere naturale, ordonate crescător, ce pot fi dispuse pe mai multe linii.

Date de ieșire

Fișierul de ieșire interclasm.out va conține pe prima linie valorile determinate, separate printr-un spațiu.

Restricții și precizări

  • 0 < x < 1.000.000
  • 1 ≤ n, m ≤ 100.000
  • valorile elementelor celor două șiruri vor fi mai mici decât 1.000.000

Exemplu

interclasm.in

5
7
1 2 3 4 
7 20 60
9
3 5 7 
8 9 10 12 
20 24

interclasm.out

5 10 60
#include <bits/stdc++.h>

using namespace std;

ifstream fin("interclasm.in");
ofstream fout("interclasm.out");

int main()
{
    int x;
    fin >> x;
    int n;
    fin >> n;
    int a[100000] , b[100000] , v[200000];
    int p = 0;
    for(int i = 0 ; i < n ; ++i)
    {
        fin >> a[i];
        v[p]=a[i];
        p++;
    }
    int m;
    fin >> m;
    for(int i = 0 ; i < m ; ++i)
    {
        fin >> b[i];
        v[p]=b[i];
        p++;
    }
    sort(v , v+p);
    for(int i = 0 ; i < p ; ++i)
    {
        if(v[i]!=v[i-1] && v[i]!=v[i+1])
        {
            if(v[i]%x==0)
            fout << v[i] << ' ';
        }
    }
    
}
Comentarii

S-ar putea sa iti placa