小 Q 在思考一个奇怪的问题,这个问题是这样的:请给出一个长度为

的序列

,使其满足给出的

个式子。
其中第

个式子会给出两个参数

,表示

。
为了使题目变得更加简单,其中对于每一个

,

。
如果没有一个序列都满足给出的

条柿子,请直接输出

。
输入描述:
输入第一行有两个整数 
,表示序列的长度与式子的个数。
接下来
行,每行有两个整数,分别表示每个式子的参数 
。
输出描述:
本题将会使用 Special Judge。
只有一行包含
个整数,表示序列
。
备注:
为了保证选手的做题体验,我们将会给出 spj 以及使用的步骤。
1.创建一个文件夹,然后创建一个 cpp,将给出的 spj 复制进 cpp 里。
2.再分别创建 1.in,1.out,1.ans,将要测试数据的输入复制进 1.in,答案输出复制进 1.ans,你的输出复制进 1.out。
3.然后直接运行保存 spj 的 cpp,spj 将会返回两行信息,其中第二行会返回一个数字,如果数字为 100,则答案正确,数字为 0,则答案错误。
#include <cstdlib>
#include <cmath>
#include <fstream>
#include <iostream>
using namespace std;
int score,n,m;
long long a[2000005],sum[2000005];
void Judge(){
std::ifstream fin("1.in");
std::ifstream fout("1.out");
std::ifstream fans("1.ans");
fin>>n,fin>>m;
int Ans=0;
fans>>Ans;
if(Ans==-1){
fout>>a[1];
if(a[1]!=-1){
std::cerr <<"Your answer is wrong.You should print -1.";
cout<<0<<endl;
}else{
std::cerr <<"OK! Accepted! So niu bi!";
cout<<100<<endl;
}
return ;
}
for(int i=1;i<=n;i++){
fout>>a[i];
if(a[i]<1||a[i]>1ll*20000000000){
std::cerr<<"Your number is out of range[1,2e10].";
cout<<0<<endl;
return ;
}
if(i==1)sum[i]=a[i];
else sum[i]=sum[i-1]^a[i];
}
for(int i=1;i<=m;i++){
int x,y;
fin>>x,fin>>y;
if(sum[x]!=y){
std::cerr << "Your answer is wrong.";
cout<<0<<endl;
return ;
}
}
std::cerr<<"OK! Accepted! So niu bi!";
cout<<100<<endl;
}
int main(int argc, char* argv[]) {
Judge();
}