Submission details
Task:Xor sum
Sender:aalto26dm_034
Submission time:2026-09-21 17:28:18 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#20.65 sdetails

Compiler report

input/code.cpp: In member function 'bool compute::start()':
input/code.cpp:38:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |        for (int i=0;i<data.size();i++) {
      |                     ~^~~~~~~~~~~~
input/code.cpp: In member function 'int compute::findleft(int, int, int)':
input/code.cpp:81:13: warning: unused variable 'v' [-Wunused-variable]
   81 |         int v=data[t];
      |             ^
input/code.cpp:85:5: warning: no return statement in function returning non-void [-Wreturn-type]
   85 |     }
      |     ^

Code

#include <iostream>
#include <vector>
#include <climits>
using std::cout;
using std::endl;
#define DEBUG std::cout<<"LINE"<<__LINE__;
#define IN(A) int A;std::cin>>A;
#define BUG(A,B) std::cout<<A<<B<<std::endl;

template<typename T> T printV(std::vector<T> V) {
    for (int i=0;i<V.size-1;i++) {
        std::cout<<V[i]<<" ";
    }
    std::cout<<V[V.size-1];
    std::cout<<endl;
}
int64_t max3(int64_t a,int64_t b,int64_t c) {
    return std::max(a,std::max(b,c));
}
struct compute {
    std::vector<int> data;
    std::vector<std::pair<int,int>> result;
    bool start() {
        IN(n);
        IN(q)
        int k;
        for (k=1;k<n;k=k*2);
        k=k*2;

        data.assign(k,0);

        for (int i=0;i<n;i++) {
            std::cin>>data[i+k/2];
        }
        for (int i=k/2+n-1;i>0;i--) {
            data[i/2]=data[i]^data[i/2];
        }
       for (int i=0;i<data.size();i++) {
            std::cout<<data[i]<<" ";
        }std::cout<<endl;
        for (int i=0;i<q;i++) {
            IN(a);
            IN(b);
            a=a+k/2-1;
            b=b+k/2-1;
            int x=a;
            int y=b;
            int v=0;

            while (x<=y) {
                if (x%2==1) v=v^data[x++];
                if (y%2==0) v=v^data[y--];
                x=x/2;
                y=y/2;
            }
 /*
            while (true) {
                if (x&1) v=data[x]^v;
                if (y<=0) break;
                if (!(y&1)) v=data[y]^v;
                if (x==y||x<=0||y<=0) break;
                if (x&1)
                    x=x/2+1;
                else
                    x=x/2;
                if (y&1)
                    y=y/2;
                else
                    y=y/2-1;

            }
            */
            std::cout<<v<<endl;

        }
        return true;
    }


    int findleft(int t,int a,int b){
        int v=data[t];



    }

    void readV(int n) {
        for (int i=0;i<n;i++) std::cin>>data[i];

    }
};

int main() {
    compute comp;
    comp.start();


}

Test details

Test 1

Verdict:

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
4 4 3 7 1 2 11 12 7 6 4 6 2 9 ...

Feedback: Output is longer than expected

Test 2

Verdict:

input
200000 200000
921726510 307633388 992247073 ...

correct output
834756431
130379787
403037296
308618218
784778243
...

user output
739353173 739353173 518762866 ...

Feedback: Output is longer than expected