逻辑运算
题目描述
有 nn 个逻辑值 a_ia
i
和 mm 个询问,询问格式为:
1 x y:询问 a_xa
x
和 a_ya
y
做与运算的结果;
2 x y:询问 a_xa
x
和 a_ya
y
做或运算的结果;
3 x:询问 a_xa
x
做非运算的结果。
输入格式
从标准输入读入数据。 第一行输入两个正整数 nn(n\le1000n≤1000)和 mm(m\le1000m≤1000)。 第二行输入 nn 个整数 a_ia
i
(a_i=0a
i
=0 或 a_i=1a
i
=1)。 接下来 mm 行,每行输入一个询问,询问格式为题目所述三种之一。
输出格式
输出到标准输出。 输出一行 mm 个整数 00 或 11,按顺序对应每个询问的结果。
输入输出样例
输入 #1复制
5 5
1 0 0 1 0
1 1 4
1 1 3
2 2 3
2 5 4
3 2
输出 #1复制
1 0 0 1 1
成功
#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int n;
int q;
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=q;i++)
{
int s,x,y;
cin>>s;
if(s==1)
{
cin>>x>>y;
int k=a[x]&a[y];
cout<<k<<endl;
}
if(s==2)
{
cin>>x>>y;
int k=a[x]|a[y];
cout<<k<<endl;
}
if(s==3)
{
cin>>x;
int k=!a[x];
cout<<k<<endl;
}
}
return 0;
}
百合花数是真的不会了QAQ
打了1个多小时的表只输出了1个12位数