Pagini recente » Borderou de evaluare (job #2280360) | Borderou de evaluare (job #2174134) | Borderou de evaluare (job #2667736) | Cod sursa (job #1228523) | Cod sursa (job #2609180)
#include <iostream>
#include <cmath>
using namespace std;
long long p[40],a,b,t,n,i,j,pile1,pile2;
int main()
{
p[1]=2;
for (i=2; i<=32; ++i)
p[i]=p[i-1]*2;
cin>>t;
for (j=1; j<=t; ++j)
{
cin>>n;
if (n==2)
cout<<2<<"\n";
else
{
pile1=p[n];
a=1;
pile2=p[n-1];
b=1;
for (i=n-2;i>=1;--i)
{
if (a==n/2) pile2+=p[i];
else if (b==n/2) pile1+=p[i];
else if (abs(pile1+p[i]-pile2)<abs(pile2+p[i]-pile1)) pile1+=p[i],a++;
else if (abs(pile2+p[i]-pile1)<abs(pile1+p[i]-pile2)) pile2+=p[i],b++;
}
cout<<abs(pile2-pile1)<<"\n";
}
}
}