太困了于是没做…第二天看题蘑菇题居多就只切了简单的两个…
A:直接输出…
int main()
{
//FIN;
//FOUT;
int x,y;
cin>>x>>y;
int q = abs(abs(x) + abs(y));
if(x > && y > )
cout<<"0 "<<q<<" "<<q<<""<<endl;
if(x < && y > )
cout<<-q<<""<<" 0 "<<q<<endl;
if(x < && y < )
cout<<-q<<" 0 "<<"0 "<<-q<<endl;
if(x > && y < )
cout<<"0 "<<-q<<" "<<q<<""<<endl;
return ;
}
C:求做&以后 mod2k=0 且k最大的子序列
枚举右移位数 , 出现能整除2k的就输出…
vector<int> v;
int main()
{
//FIN;
//FOUT;
int n,a;
cin>>n;
for(int i = ; i < n ; i++) {
cin>>a;
v.push_back(a);
}
int p = ,m = -INF;
for(int i = ; i >= ; i--){
vector<int> s;
for(int j = ; j < v.size() ; j++){
if((v[j]>>i) & ){
s.push_back(v[j]);
}
}
if(s.size() == ) continue;
int sum = s[];
for(int j = ; j < s.size() ; j++){
sum = sum & s[j];
}
if(sum % (<<i) == ){
cout<<s.size()<<endl;
for(int j = ; j < s.size() ; j++){
cout<<s[j]<<" ";
}
break;
}
}
return ;
}