Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.util.Arrays;
- import java.util.Random;
- import java.util.StringTokenizer;
- public class C {
- static void shuffle(int[] a)
- {
- int n=a.length;
- Random rnd = new Random(System.nanoTime());
- for (int i=0; i<n; ++i)
- {
- int v=rnd.nextInt(n-i);
- int tmp=a[i+v];
- a[i+v]=a[i];
- a[i]=tmp;
- }
- }
- public static void main(String[] args) throws Exception {
- InputReader in = new InputReader(System.in);
- int n=in.nextInt();
- int q=in.nextInt();
- int a[]= new int [n];
- int b[]=new int[n];
- for (int i=0; i<n; ++i)
- a[i]=in.nextInt();
- for (int i=0; i<q; ++i)
- {
- int l=in.nextInt();
- int r=in.nextInt();
- l--;
- r--;
- b[l]++;
- if (r<n-1)
- b[r+1]--;
- }
- int v=0;
- shuffle(a);
- Arrays.sort(a);
- int val[] = new int[n];
- for (int i=0; i<n; ++i)
- {
- v+=b[i];
- val[i]=v;
- }
- shuffle(val);
- Arrays.sort(val);
- long res=0;
- for (int i=0; i<n; ++i)
- {
- long c=a[i];
- c*=val[i];
- res+=c;
- }
- System.out.println(res);
- }
- }
- class InputReader {
- BufferedReader reader;
- StringTokenizer tokenizer;
- public InputReader(InputStream stream) {
- reader = new BufferedReader(new InputStreamReader(stream));
- tokenizer = null;
- }
- public String next() {
- while (tokenizer == null || !tokenizer.hasMoreTokens()) {
- try {
- tokenizer = new StringTokenizer(reader.readLine());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- return tokenizer.nextToken();
- }
- public long nextLong() {
- return Long.parseLong(next());
- }
- public int nextInt() {
- return Integer.parseInt(next());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement