Solution 3 for Scaler Topics Fortnightly Contest - 5
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 - 5.
Build an AI-First Career, Master the Complete Skillset
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
NSDC Certified
AI Forward Deployed Engineer Program
Full-stack engineering, production AI and client-facing consulting
12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
+1000 moreSolution Approach
- Given a graph with A nodes and M edges. We have to process two types of queries.
- Remove an edge between X and Y.
- Return the maximum sum out of all the connected componenets.
- If we reverse our queries, our first query changes from removing an edge to adding an edge.
- Now, we have to think of a data structure which support two types of operations - Union and Get.
- We can perform this using Disjoint Set Union (DSU). Although, the implementation should be in a way such that both the operations are of O(log N) time complexity.
The steps are as follows:
- Generate a hash for all the edges in the array C. (Hash should be generated such that querying for (b, a) should also give positive if (a, b) is present).
- Delete all the edges present in array D.
- Perform the query operations in reverse order.
- Lastly, again reverse the answers stored and return the array.
C++ Implementation
Sharpen Your Fundamentals with Free Learning
Java Implementation
How Scaler Transformed Careers in Different Fields
₹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