逻辑运算问题遇到的现象

问题遇到的现象和发生背景

逻辑运算

运行结果及报错内容

题目描述
有 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位数

img