Solution 3 for Scaler Topics Fortnightly Contest - 14
Learn via video course

DSA Problem Solving for Interviews using Java
by Jitender Punia
1000
4.9
This article is part of the Scaler Topics Fortnightly Contest - 14
Transform Your Career
Choose from our industry-leading programs designed for career success
NSDC Certified
Modern Software and AI Engineering Program
Master full-stack development with AI integration
12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
+1000 moreNSDC Certified
Modern Data Science and ML with specialisation in AI
Advanced data science techniques with AI specialization
12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
+1000 moreNSDC Certified
Advanced AIML with Specialisation in Agentic AI
Deep dive into AIML with focus on Agentic systems
12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
+1000 moreNSDC Certified
DevOps, Cloud & AI Platform Engineering
Build and manage AI-powered cloud infrastructure
12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
+1000 moreNSDC Certified
AI Engineering Advanced Certification by IIT-Roorkee
Premier AI engineering certification from IIT-Roorkee
3 MonthsDuration
AI-LedCurriculum
Career SupportSupport
Solution Approach
- If popcount(x)%2 = 0 and popcount(y)%2 = 0, then popcount(x⊕y)%2 is 0.
- If popcount(x)%2 = 1 and popcount(y)%2 = 1, then popcount(x⊕y)%2 is 0.
- If popcount(x)%2 = 0 and popcount(y)%2 = 1, then popcount(x⊕y)%2 is 1.
- Thus, we can say for an array to be superior, the count of elements x such that popcount(x)%2 = 1 should be even.
- Thus we maintain a Sorted List odd_popcount of indices of the A with elements having odd popcount at those indices.
- For each query, if the parity of popcount changes, we add or remove the corresponding index based on the scenario.
- If the size of odd_popcount is even after performing a query, then ans for that query is |A| since the whole array is superior. else, the longest superior subarray is either of the below:
- subarray starting after the first index in odd_popcount till the end.
- subarray starting from index 1 till before the last index in odd_popcount.
- We can use std::set (C++) data structure for the same.
Time Complexity -
where N is length of A and comes from counting popcount of elements).
C++ Implementation
Free Courses by top Scaler instructors
Java Implementation
Scaler Placement Report and Statistics
₹23L
AVG CTC
SCALER PLACEMENT PROOF
Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching ₹23L.
11,000+placements
650+companies
Verified data
See full placement report
Hiring Partners:
Google
Amazon
Microsoft
Flipkart
Adobe1200+ more




