#include<iostream>
#include<fstream>
using namespace std;
int ilosc_bitow(int n)
{
int ile=0;
while(n>0)
{
if(n%2==1)
{
ile++;
n=(n-n%2)/2;
}
else
{
n=n/2;
}
}
return ile;
}
int main()
{
long long int n,m;
int i;
cin>>n>>m;
long long int tab[n];
for(i=0; i<n; i++)
{
cin>>tab[i];
}
long long int suma=0;
long int j=m-n+1;
for(i=0; i<n; i++)
{
suma=suma+tab[i]*ilosc_bitow(j+i);
}
printf("%lld",suma);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include<iostream> #include<fstream> using namespace std; int ilosc_bitow(int n) { int ile=0; while(n>0) { if(n%2==1) { ile++; n=(n-n%2)/2; } else { n=n/2; } } return ile; } int main() { long long int n,m; int i; cin>>n>>m; long long int tab[n]; for(i=0; i<n; i++) { cin>>tab[i]; } long long int suma=0; long int j=m-n+1; for(i=0; i<n; i++) { suma=suma+tab[i]*ilosc_bitow(j+i); } printf("%lld",suma); return 0; } |
English