Cod sursa(job #2781273)

Utilizator dragutamihai1234Draguta Mihai dragutamihai1234 Data 8 octombrie 2021 21:41:44
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int v[10], v2[1001], ap[10001];
int main()
{
    ifstream cin("loto.in");
    ofstream cout("loto.out");
    int n, a, minn = 10001, maxx = 0, maxdist = 10001, mindist = 10001, dist1, dist2, nrmin, nrmax, minni, maxxi;
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >>  v2[i];
    for(int i = 1; i <= 6; i++)
    {
        cin >> a;
        ap[a] = 1;
        if(a < minn)
        {
            minn = a;
            minni = i;
        }
        if(a > maxx)
        {
            maxx = a;
            maxxi = i;
        }
        v[i] = a;
    }
    sort(v2 + 1, v2 + n + 1);
    for(int i = 1; i <= n; i++)
    {
        if(v2[i] > v[minni])
            dist1 = v2[i] - v[minni];
        else
            dist1 = v[minni] - v2[i] ;
        if(dist1 <= mindist && ap[v2[i]] == 0)
        {
            mindist = dist1;
            nrmin = v2[i];
        }
    }
    ap[nrmin] = 1;
    for(int i = 1; i <= n; i++)
    {
        if(v2[i] > v[maxxi])
            dist2 = v2[i] - v[maxxi];
        else
            dist2 = v[maxxi] - v2[i] ;
        if(dist2 <= maxdist && ap[v2[i]] == 0)
        {
            maxdist = dist2;
            nrmax = v2[i];
            ap[v2[i]] = 1;
        }
    }
    v[minni] = nrmin;
    v[maxxi] = nrmax;
    sort(v + 1, v + 7);
    for(int i = 1; i <= 6; i++)
        cout << v[i] << ' ';
    return 0;
}