एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

रेंज XOR क्वेरीज़

आपके पास n तत्वों वाला एक ऐरे है और q क्वेरीज़ हैं। इन क्वेरीज़ के दो प्रकार हैं:
  1. दिए गए रेंज का XOR (एक्सक्लूसिव OR) निकालना
  1. ऐरे के किसी निर्धारणित स्थान को नया मान देना
आपका काम है कि आप इन क्वेरीज़ को प्रभावी ढंग से प्रसेस करें।

इनपुट

इनपुट की पहली पंक्ति में दो पूर्णांक n और q दिए जाते हैं (1 ≤ n, q ≤ 100 000), जो ऐरे में मौजूद तत्वों की संख्या और क्वेरीज़ की संख्या को दर्शाते हैं।
दूसरी पंक्ति में n स्पेस से अलग किए गए पूर्णांक दिए रहते हैं (), जो ऐरे के शुरुआती तत्वों का मान बताते हैं।
अगली q पंक्तियों में से प्रत्येक एक क्वेरी का विवरण देती है:
  1. अगर क्वेरी रेंज XOR से संबंधित है: पंक्ति की शुरुआत 1 से होगी, उसके बाद दो पूर्णांक और होंगे (), जिनसे [$$l_i, r_i$$] रेंज के बीच XOR value की गणना की जानी है।
  1. अगर क्वेरी ऐरे के अपडेट से संबंधित है: पंक्ति की शुरुआत 2 से होगी, उसके बाद दो पूर्णांक और होंगे (), जो उस पोज़िशन को और उसके नए मान को दर्शाते हैं।

आउटपुट

हर रेंज XOR क्वेरी के लिए, दिए गए रेंज में मौजूद तत्वों का XOR मान एक नई पंक्ति में प्रिंट करें।

उदाहरण

इनपुट
आउटपुट
6 4 1 4 2 7 5 3 1 1 3 2 2 9 1 2 5 1 3 6
7 9 3

Constraints

Time limit: 0.6 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue