Submission #630559

#TimeUsernameProblemLanguageResultExecution timeMemory
630559kyaruruSchools (IZhO13_school)Java
25 / 100
2057 ms29652 KiB
import java.io.*;
import java.util.*;

public class school {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] s=bf.readLine().split(" ");
        int a=Integer.parseInt(s[0]),p=Integer.parseInt(s[1]),q=Integer.parseInt(s[2]);
        int[][] k=new int[a][2];
        for(int i=0; i<a; i++){
            s=bf.readLine().split(" ");
            k[i][0]=Integer.parseInt(s[0]);
            k[i][1]=Integer.parseInt(s[1]);
        }
        Arrays.sort(k,(o1, o2) -> {
            if(Math.max(o1[0],o1[1])==Math.max(o2[0],o2[1])) return Math.min(o2[0],o2[1])-Math.min(o1[0],o1[1]);
            else return Math.max(o2[0],o2[1])-Math.max(o1[0],o1[1]);
        });
        int[][] ka=new int[p+q][2];
        System.arraycopy(k, 0, ka, 0, p + q);
        Arrays.sort(ka,(o1, o2) -> Math.abs(o2[0]-o2[1])-Math.abs(o1[0]-o1[1]));
        long sum=0;
        int c=p+q;
        for(int i=0; i<c; i++){
            if(p==0){
                sum+=ka[i][1];
                q--;
            }
            else if(q==0){
                sum+=ka[i][0];
                p--;
            }
            else{
                if(ka[i][0]>ka[i][1]){
                    sum+=ka[i][0];
                    p--;
                }
                else{
                    sum+=ka[i][1];
                    q--;
                }
            }
        }
        System.out.println(sum);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...