Pagini recente » Cod sursa (job #2427248) | Borderou de evaluare (job #498889) | Cod sursa (job #2882997) | Cod sursa (job #2612287) | Cod sursa (job #2204528)
#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;
}