Pagini recente » Cod sursa (job #783948) | Cod sursa (job #1947068) | Cod sursa (job #2842829) | Cod sursa (job #816948) | Cod sursa (job #3209966)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("file.in");
ofstream fout("file.out");
int task, n, poz, curr;
int i, j;
int pow2[64];
void precalc_puteri(){
pow2[0]=1;
for(i=1; i<=63; i++)
pow2[i]=2*pow2[i-1];
}
void solve1(){
fin>>poz;
curr=1;
while(poz>63){
fout<<"1 ";
poz--;
}
for(i=n-2; i>=0; i--){
if(poz>pow2[i]){
curr++;
poz-=pow2[i];
}else{
fout<<curr<<" ";
curr=1;
}
}
fout<<curr;
}
void solve2(){
poz=0, i=0;
while(fin>>curr){
for(i=1; i<curr; i++)
poz+=pow2[n-i-1];
n-=curr;
}
fout<<poz;
}
int main(){
fin>>task>>n;
precalc_puteri();
if(task==1)
solve1();
else solve2();
}