import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int cities = in.nextInt(); for(int i=0;i(townPopulation.keySet()); int clouds = in.nextInt(); int maxCoverage = 0; for(int j=0;j townList = new ArrayList<>(); while(town<=cloudEnd){ int count = townClouds.containsKey(town) ? townClouds.get(town) + 1 : 1; townClouds.put(town, count); town = towns.get(townIndex++); currentCoverage++; } if(currentCoverage > maxCoverage){ maxCoverage = currentCoverage; } } int sunnyPeople = 0; for(Map.Entry town : townPopulation.entrySet()){ if(townClouds.containsKey(town.getKey())){ }else{ sunnyPeople = town.getValue(); } } int sCount = 0; int sMax = 0; for(Map.Entry townCloud : townClouds.entrySet()){ if(townCloud.getValue() == 1){ sCount+= townPopulation.get(townCloud.getKey()); if(sCount>sMax){ sMax = sCount; } }else{ sCount = 0; } } System.out.println(sunnyPeople+sMax); //int freeTowns = town } static ArrayList towns; static HashMap> cloudTownsMap = new LinkedHashMap<>(); static TreeMap townClouds = new TreeMap(); static TreeMap townPopulation = new TreeMap(); static TreeMap cloudCoverage = new TreeMap(); }