Pagini recente » Cod sursa (job #1572881) | Cod sursa (job #3292474) | Cod sursa (job #2851995) | Cod sursa (job #3003245) | Cod sursa (job #561815)
Cod sursa(job #561815)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("aliens.in"); ofstream out("aliens.out");
int n,p,q=1;
float v[10000], c[10000], sol[10000], prod=1, maxim=1;
void citire(int n)
{ int j=1;
for (int i=1; i<=2*n; i++)
{ in>>v[i]; }
for (int i=1; i<=n; i++)
{
c[i]=v[j]/v[j+1];
j=j+2;
}
}
int intreg(float a)
{ int b;
b=a;
if (a==b) return 1; return 0;
}
int valid(int k)
{
for (int i=1; i<k; i++)
if (sol[i] >= sol[i+1]) return 0; return 1;
}
void back(int k)
{
if (k==p+1)
{
for (int i=1; i<=p; i++)
{ prod=prod*sol[i]; out<<sol[i]<<" "; }
out<<"prod: "<<prod<<" ";
if (intreg(prod) && prod > maxim ) { maxim=prod; out<<"intreg"; }
v[q]=prod; q++;
prod=1;
out<<'\n';
}
else
{
for (int i=1; i<=n; i++)
{
sol[k]=c[i];
if (valid(k)) back(k+1);
}
}
}
int main()
{
in>>n;
citire(n);
for (p=n; p>=1; p--)
back(1);
out<<maxim;
for (int i=1; i<q; i++)
if (intreg(v[i])) cout<<v[i]<<'\n';
in.close();
out.close();
return 0;
}