Cod sursa(job #370283)

Utilizator GotenAmza Catalin Goten Data 30 noiembrie 2009 18:34:18
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream.h>

int n,k,t,u,x[40],i;

long double p,s,a[40],pp;

int main()
{
 ifstream f("dezastru.in");
 ofstream g("dezastru.out");
 f>>n>>t;
 for(i=1;i<=n;i++)f>>a[i];
 p=1;
 for(i=1;i<=t;i++)p*=a[i];
 pp=p;
 k++;
 s=0;
 while(k)
 {
  x[k]++;
  if(k==t)
   {
    u=0;
    while(x[k-u]==n-u)u++;
    k-=u;
    if(k)
    {
    p/=a[x[k]];
    p*=a[x[k]+1];
    }
    else p=pp;
    s+=p;
    }
  else
   {
    k++;
    x[k]=x[k-1];
    }
  }
 for(i=t+1;i<=n;i++)s*=(float(n+1)/i-1);
 g<<s;
 g.close();
 return 0;
 }