#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n,i,j;
cin>>n;
int tab[n];
for(i=0; i<n; i++)
{
cin>>tab[i];
}
int pom[14];
for(i=0; i<14; i++)
{
pom[i]=0;
}
for(i=0; i<14; i++)
{
int k=pow(2,i);
int l=k/2;
//cout<<k<<" "<<l<<" ";
for(j=0; j<n; j++)
{
if(tab[j]<=k && tab[j]>l)
{
pom[i]++;
}
}
//cout<<pom[i]<<endl;
}
long liczba=0;
int komb[14];
for(i=0 ;i<14; i++)
{
komb[i]=pow(2,pom[i])-1;
// cout<<komb[i];
}
int pom_liczba;
for(i=0; i<14; i++)
{
pom_liczba=komb[i];
for(j=0; j<i;j++)
{
pom_liczba=pom_liczba*komb[j];
}
liczba=liczba+pom_liczba;
liczba=liczba%1000000007;
}
cout<<liczba;
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <iostream> #include <math.h> using namespace std; int main() { int n,i,j; cin>>n; int tab[n]; for(i=0; i<n; i++) { cin>>tab[i]; } int pom[14]; for(i=0; i<14; i++) { pom[i]=0; } for(i=0; i<14; i++) { int k=pow(2,i); int l=k/2; //cout<<k<<" "<<l<<" "; for(j=0; j<n; j++) { if(tab[j]<=k && tab[j]>l) { pom[i]++; } } //cout<<pom[i]<<endl; } long liczba=0; int komb[14]; for(i=0 ;i<14; i++) { komb[i]=pow(2,pom[i])-1; // cout<<komb[i]; } int pom_liczba; for(i=0; i<14; i++) { pom_liczba=komb[i]; for(j=0; j<i;j++) { pom_liczba=pom_liczba*komb[j]; } liczba=liczba+pom_liczba; liczba=liczba%1000000007; } cout<<liczba; return 0; } |
English