A - Vasily the Bear and Triangle
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int x,y,ansx,ansy;
cin>>x>>y;
ansx=ansy=(x>=0?x:(-x))+(y>=0?y:(-y));
if(x<0)cout<<-ansx<<" "<<0<<" "<<0<<" "<<(y>0?ansy:-ansy)<<endl;
else cout<<0<<" "<<(y>0?ansy:-ansy)<<" "<<ansx<<" "<<0<<endl;
return 0;
}
C - Vasily the Bear and Sequence 枚举最低位,把该位为1的数相与,看最后的答案该位以后的是否都为0,因为只要有一个0所有的都会是0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int maxn=100010;
int n,a[maxn];
int main()
{
//freopen("in.txt","r",stdin);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
vector<int> p;
for(int i=31;i>=0;i--)
{
int sum=-1;
bool flag=true;
p.clear();
for(int j=1;j<=n;j++)
{
if(a[j]&(1<<i))
{
if(sum>0)sum&=a[j];
else sum=a[j];
p.push_back(a[j]);
}
}
for(int j=0;j<i;j++)
if(sum&(1<<j)){flag=false;break;}
if(flag)break;
}
cout<<p.size()<<endl;
for(int i=0;i<p.size();i++)
cout<<p[i]<<" ";
cout<<endl;
return 0;
}