#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; } |