Cod sursa(job #3209966)

Utilizator Robert_NicuNicu Robert Cristian Robert_Nicu Data 4 martie 2024 09:49:33
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#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();
}