Rezultati

Up. imeNalogaJezikRezultatČas oddaje
tab-2019 Revolver C++ 0/100Napačen odgovor (WA) 09. maj '19 @ 20:11

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 0/14 3,148 MiB 0,000 s Napačen odgovor
#2 [več] 0/14 3,000 MiB 0,000 s Napačen odgovor
#3 [več] 0/14 3,152 MiB 0,000 s Napačen odgovor
#4 [več] 0/14 2,996 MiB 0,000 s Napačen odgovor
#5 [več] 0/14 3,000 MiB 0,004 s Napačen odgovor
#6 [več] 0/15 3,152 MiB 0,000 s Napačen odgovor
#7 [več] 0/15 3,000 MiB 0,000 s Napačen odgovor

Ocenjevani program (main.cpp):
#include <iostream>
#include <vector>
#include <cstdio>
#include <string>
#include <math.h>
#include <algorithm>

using namespace std;

int nbit(long long int n,long long int mb){
    int nbits=0;
    long long int cmb=0;
    while(n>0){
        if(n%2==0) nbits++;
        cmb++;
        n/=2;
    }
    if(cmb!=mb) return -1;
    return nbits;
}


int main()
{
    long long int n;
    cin>>n;
    if(n==1){cout<<1;return 0;}
    if(n<4){cout<<0;return 0;}
    int nbits=0;
    long long int mb=0;
    long long int c=n;
    while(c>0){
        if(c%2==0) nbits++;
        mb++;
        c/=2;
    }
    long long int f=1<<((mb-2)/2);
    long long int produkt = f*f;
    int r=0;
    long long int one =1;
    while(produkt<(one<<mb)){
        if(nbit(produkt,mb)==nbits) r++;
        f++;
        produkt = f*f;
    }
    cout<<r;
    return 0;
}