#677. 数据包区间校验
数据包区间校验
题目描述
某通信设备将每个数据包记录为 到 之间的整数。为了检查一段连续数据包,小 A 定义了两个指标:校验值为这一段所有整数按位异或的结果;亮灯数为这一段所有整数按 位二进制表示时,二进制位 的总个数。若校验值的 位二进制表示中 的个数为偶数,则认为该区间状态为 OK,否则状态为 WARN。给定数据包序列和若干个区间询问,请输出每个区间的状态、校验值和亮灯数。
输入格式
第一行包含两个整数 和 ,表示数据包个数和询问个数。
第二行包含 个整数 。
接下来 行,每行包含两个整数 和 ,表示询问从第 个到第 个数据包组成的连续区间。
输出格式
对于每个询问,输出一行。若状态为 OK,输出 OK checksum ones;若状态为 WARN,输出 WARN checksum ones。其中 checksum 为区间校验值,ones 为区间亮灯数,三项之间用一个空格分隔。
样例
5 3
3 5 7 8 15
1 3
2 4
4 5
WARN 1 7
OK 10 6
WARN 7 5
样例解释
第 个询问中,,亮灯数为 。校验值 的二进制中有 个 ,为奇数,因此状态为 WARN。
数据范围
,。
所有输入均为整数。