Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <bits/stdc++.h>
- #include <cstdio>
- #include <algorithm>
- using namespace std;
- unsigned int pow2[31];
- unsigned int spower2[1000];
- int ns,n,v;
- //ns=nr de elem din din spower2
- unsigned int binarySearch(int v) {
- int st=0,dr=ns-1,mij;
- while(st<=dr) {
- mij=(st+dr)/2; ///mij=(st+dr)>>1;
- if(spower2[mij]==v) {
- return v;
- } else {
- if(spower2[mij] < v)
- st=mij+1;
- else
- dr=mij-1;
- }
- }
- return spower2[st];
- }
- int main() {
- freopen("spower2.in","r",stdin);
- freopen("spower2.out","w",muie_bwei);
- pow2[0]=1;
- for(int i=1; i<=31; i++) {
- pow2[i]=2*pow2[i-1];
- /// pow2[i]=(1<<i);
- }
- for(int i=0; i<30; i++) {
- for(int j=i+1; j<31; j++) {
- spower2[ns++]=pow2[i]+pow2[j];
- }
- }
- sort(spower2,spower2 + ns);
- scanf("%d",&n);
- for(int i=0; i<n; i++) {
- scanf("%d",&v);
- cout << binarySearch(v)<<" ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement