Cod sursa(job #2204528)

Utilizator TudoseSanzianaTudose Sanziana TudoseSanziana Data 16 mai 2018 11:46:40
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in("sequences.in");
ofstream out("sequences.out");

const int N_MAX = 6, X_MAX = 1e6;

int n;
long long x[N_MAX + 2];

bool vis[X_MAX + 2];

queue<long long> q;

int main()
{
    in >> n >> x[1];

    for(int i = 2; i <= n; i++)
        in >> x[i];

    if(n == 2)
        out << 1LL * x[1] * x[2] - x[1] - x[2];
    else
    {
        long long num = 0;

        q.push(x[1]);

        vis[0] = true;
        for(int i = 2; i <= n; i++)
        {
            q.push(x[i]);

            if(!vis[x[i] % x[1]])
            {
                vis[x[i] % x[1]] = true;
                num = x[i];
            }
        }

        while(!q.empty())
        {
            long long fr = q.front();
            for(int i = 1; i <= n; i++)
            {
                long long newx = fr + x[i];
                if(!vis[newx % x[1]])
                {
                    num = newx;
                    vis[newx % x[1]] = true;

                    q.push(newx);
                }
            }

            q.pop();
        }

        out << num - x[1];
    }

    return 0;
}