Submission details
Task:Xor sum
Sender:Giaco
Submission time:2025-09-22 17:22:48 +0300
Language:Rust (2021)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.31 sdetails

Compiler report

warning: unused imports: `max`, `min`
 --> input/code.rs:1:16
  |
1 | use std::cmp::{max, min};
  |                ^^^  ^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused imports: `HashMap`, `HashSet`
 --> input/code.rs:2:24
  |
2 | use std::collections::{HashMap, HashSet};
  |                        ^^^^^^^  ^^^^^^^

warning: variable does not need to be mutable
  --> input/code.rs:42:21
   |
42 |         let (mut s, mut e):  (usize, usize) = (input!(it), input!(it));
   |                     ----^
   |                     |
   |                     help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` on by default

warning: 3 warnings emitted

Code

use std::cmp::{max, min};
use std::collections::{HashMap, HashSet};
use std::io::{self, Read};

macro_rules! input {
    ($it: expr) => {
        $it.next().unwrap().parse().unwrap()
    };
    ($it: expr, $T: ty) => {
        $it.next().unwrap().parse::<$T>().unwrap()
    };
}
/*
mod classes;
mod homework;

fn main() {
    // println!("{}", "-".repeat(20));
    classes::c07::task1();
    // homework::hw2::task1();
    // println!("{}", "-".repeat(20));
}
// */

fn main() {
    let mut buf = String::new();
    io::stdin().read_to_string(&mut buf).unwrap();

    let mut it = buf.split_whitespace();

    let (n, mut q): (usize, usize) = (input!(it), input!(it));
    let v: Vec<usize> = (0..n).map(|_| input!(it)).collect();

    // prefix sum
    let mut ps: Vec<usize> = vec![0; n+1];
    for i in 0..n {
        ps[i+1]=v[i]^ps[i];
    }

    while q>0 {
        q-=1;
        let (mut s, mut e):  (usize, usize) = (input!(it), input!(it));
        s-=1;

        // let mut rtn = v[e];
        // for i in s..e {
        //     // print!("{} ", rtn);
        //     rtn = rtn ^ v[i];
        // }

        // e.1-=1;
        // println!("{:?}, {:?}", s, e);
        let rtn = ps[e] ^ ps[s];
        println!("{}", rtn);
    }
}


Test details

Test 1

Verdict: ACCEPTED

input
8 36
7 6 4 6 2 9 4 8
1 1
1 2
1 3
...

correct output
7
1
5
3
1
...

user output
7
1
5
3
1
...

Test 2

Verdict: ACCEPTED

input
200000 200000
921726510 307633388 992247073 ...

correct output
834756431
130379787
403037296
308618218
784778243
...

user output
834756431
130379787
403037296
308618218
784778243
...
Truncated