Pagini recente » Atasamentele paginii Tema pentru vacanta - Tiberiu Popovicu | Cod sursa (job #2621209) | Cod sursa (job #1013153) | Cod sursa (job #2175342) | Cod sursa (job #1637297)
#include <cstdio>
#include <vector>
#define ll (long long)
FILE *f,*g;
int q,n=55;
long long v[60];
void pre()
{
v[1] = 1;
for (int i = 2;i <= n;i++)
v[i] = ll v[i-1]<<1;
}
long long solve(long long value)
{
int left, right, mid, ans;
left = 1; right = n;
while (left<=right)
{
mid = (left+right)>>1;
if (v[mid] > value)
{
right = mid-1;
}
else
{
ans = mid;
left = mid+1;
}
}
return v[ans];
}
int main()
{
f=fopen("ciuperci.in","r");
g=fopen("ciuperci.out","w");
pre();
fscanf(f,"%d",&q);
while (q--)
{
long long x;
fscanf(f,"%lld",&x);
fprintf(g,"%lld\n",solve(x));
}
fclose(g);
return 0;
}