Pagini recente » pt_round11 | Cod sursa (job #161477) | Cod sursa (job #730875) | Cod sursa (job #1595510) | Cod sursa (job #2428362)
#include <fstream>
#include <queue>
using namespace std;
struct Nod
{
long long valoare;
int parinte;
Nod(int val = 0,int par = 0): valoare(val), parinte(par) {
};
};
int main()
{
ifstream f("1-sir.in");
ofstream g("1-sir.out");
short n, cnt=0, i;
long long s;
f >> n >> s;
queue<Nod> *myQueue = new queue<Nod>();
myQueue->push(Nod());
for (i=2;i<=n;i++)
{
queue<Nod> *anotherQueue = new queue<Nod>();
while (!myQueue->empty())
{
Nod element = myQueue->front();
myQueue->pop();
anotherQueue->push(Nod(element.valoare+element.parinte+1, element.parinte+1));
anotherQueue->push(Nod(element.valoare+element.parinte-1, element.parinte-1));
}
delete myQueue;
myQueue = anotherQueue;
}
while(!myQueue->empty())
{
Nod element = myQueue->front();
myQueue->pop();
if (element.valoare == s)
++cnt;
}
delete myQueue;
g << cnt%194767;
return 0;
}