#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int set_bit(unsigned char * p_ar,unsigned int offset,unsigned char uc_bit) { unsigned int i_byte=offset/8; unsigned char i_bit_mask=1<<(7-offset%8); if(uc_bit) p_ar[i_byte]=p_ar[i_byte]|i_bit_mask; else p_ar[i_byte]=p_ar[i_byte]&(i_bit_mask^0xff); return 0; } int get_bit(unsigned char * p_ar,unsigned int offset) { unsigned int i_byte=offset/8; unsigned char i_bit_mask=1<<(7-offset%8); return ((p_ar[i_byte]&i_bit_mask)==0)?0:1; } int main(){ int g; cin >> g; vector n_(g); int max_=0; for(int a0 = 0; a0 < g; a0++){ cin >> n_[a0]; max_=max(n_[a0],max_); // your code goes here } int sq_m = sqrt(max_)+1; int l_bit=(max_+1)/8+1; unsigned char * bit_p1=new unsigned char[l_bit]; memset(bit_p1,0xff,sizeof(unsigned char)*l_bit); // set_bit(bit_p1,0,0); // set_bit(bit_p1,1,0); // cout<<"sqm="<