- #include <iostream> 
- #include <vector> 
-   
- int main(int argc, const char *argv[]) 
- { 
-     typedef bool element; 
-     std::vector<element> data(40<<20); 
-   
-     volatile element cumul = data[0]; 
-   
-     for (int j=0; j<1<<9; j++) 
-     { 
- #pragma omp parallel for reduction (^: cumul) 
-         for (int i=0; i<data.size(); i++) 
-             cumul ^= data[i]; 
-     } 
-   
-     std::cout << cumul << std::endl; 
-   
-     return 0; 
- } 
-   
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKewogICAgdHlwZWRlZiBib29sIGVsZW1lbnQ7CiAgICBzdGQ6OnZlY3RvcjxlbGVtZW50PiBkYXRhKDQwPDwyMCk7CgogICAgdm9sYXRpbGUgZWxlbWVudCBjdW11bCA9IGRhdGFbMF07CgogICAgZm9yIChpbnQgaj0wOyBqPDE8PDk7IGorKykKICAgIHsKI3ByYWdtYSBvbXAgcGFyYWxsZWwgZm9yIHJlZHVjdGlvbiAoXjogY3VtdWwpCiAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEuc2l6ZSgpOyBpKyspCiAgICAgICAgICAgIGN1bXVsIF49IGRhdGFbaV07CiAgICB9CgogICAgc3RkOjpjb3V0IDw8IGN1bXVsIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=