Nu aveti permisiuni pentru a descarca fisierul grader_test6.in
Cod sursa(job #7060)
Utilizator | Data | 21 ianuarie 2007 12:15:36 | |
---|---|---|---|
Problema | 1-sir | Scor | 0 |
Compilator | cpp | Status | done |
Runda | preONI 2007, Runda 1, Clasele 11-12 | Marime | 0.85 kb |
#include<iostream.h>
#include<fstream.h>
fstream f("1-sir.in",ios::in);
fstream g("1-sir.out",ios::out);
int n,k,x[256],as,ev,nr=0;
float s;
void init()
{ x[k]=0;
}
int succesor()
{ if(x[k]<2&&k<=n)
{x[k]++; return 1;}
else
return 0;
}
int valid()
{ return (k<=n);
}
int solutie()
{ int i,ultim=0;
float sum=0;
if(k==n)
{for(i=2;i<=k;i++)
if(x[i]==1)
{ultim--; sum+=ultim; }
else
{ultim ++; sum+=ultim;}
if(sum==s)
return 1;
else
return 0;
}
else
return 0;
}
void back()
{ k=2;
x[1]=0;
init();
while(k>1)
{ do
{ as=succesor();
if(as)
ev=valid();
}
while(as&&!ev);
if(as)
if(solutie())
nr++;
else
{k++;init();}
else
k--;
}
}
int main()
{f>>n>>s;
back();
g<<(nr%194767);
f.close();
g.close();
return 1;}