Cod sursa(job #932809)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 29 martie 2013 11:52:02
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
FILE *f=fopen("optim.in","r"),*g=fopen("optim.out","w");
int s[31],a[31],n,p,min=2147000000,max=-2147000000,val=0;
void Citire()
{int i;
fscanf(f,"%d %d",&n,&p);
for (i=1;i<=n;i++) fscanf(f,"%d",&a[i]);
}
void PrelSol()
{int i,sm=1,st=0;
for (i=1;i<=n;i++) if (s[i]==0) {st+=sm*a[i];sm=1;} else sm*=a[i];
if (st<min) min=st;
if (st>max) max=st;
//fprintf(g,"%d\n",st);
}
void back(int k)
{s
if (k==n) {if (val==p) PrelSol();}
else {

s[k]=0;back(k+1);
if (val<p)
{s[k]=1; val++; back(k+1); val--; }

}
}
int main()
{
Citire();
back(1);
fprintf(g,"%d %d",min,max);
fclose(g);
return 0;
}