Maximum possible sum of a window in an array such that elements of same window in other array are unique | C # program to find the maximum possible sum of a window in one array such that elements in same window of other array are unique . ; Function to return maximum sum of window in A [ ] according to given constraints . ; Map is used to store elements and their counts . ; Initialize result ; calculating the maximum possible sum for each subarray containing unique elements . ; Remove all duplicate instances of A [ i ] in current window . ; Add current instance of A [ i ] to map and to current sum . ; Update result if current sum is more . ; Driver Code
using System ; using System . Collections . Generic ; public class MaxPossibleSuminWindow { static int returnMaxSum ( int [ ] A , int [ ] B , int n ) { HashSet < int > mp = new HashSet < int > ( ) ; int result = 0 ; int curr_sum = 0 , curr_begin = 0 ; for ( int i = 0 ; i < n ; ++ i ) { while ( mp . Contains ( A [ i ] ) ) { mp . Remove ( A [ curr_begin ] ) ; curr_sum -= B [ curr_begin ] ; curr_begin ++ ; } mp . Add ( A [ i ] ) ; curr_sum += B [ i ] ; result = Math . Max ( result , curr_sum ) ; } return result ; } public static void Main ( String [ ] args ) { int [ ] A = { 0 , 1 , 2 , 3 , 0 , 1 , 4 } ; int [ ] B = { 9 , 8 , 1 , 2 , 3 , 4 , 5 } ; int n = A . Length ; Console . WriteLine ( returnMaxSum ( A , B , n ) ) ; } }