import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class sia {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(reader.readLine());
int n = Integer.parseInt(tokenizer.nextToken());
int m = Integer.parseInt(tokenizer.nextToken());
tokenizer = new StringTokenizer(reader.readLine());
long[] a = new long[n];
long[] curr = new long[n];
for(int i = 0; i < n; i++) {
a[i] = Integer.parseInt(tokenizer.nextToken());
curr[i] = 0;
}
// Arrays.sort(a);
long prevD = 0L;
for(int i = 0; i < m; i++) {
tokenizer = new StringTokenizer(reader.readLine());
long d = Integer.parseInt(tokenizer.nextToken());
long b = Integer.parseInt(tokenizer.nextToken());
long ret = 0;
long days = d - prevD;
for(int j = 0; j < n; j++) {
curr[j] += days * a[j];
ret += Math.max(0, curr[j] - b);
curr[j] = Math.min(b, curr[j]);
}
System.out.println(ret);
prevD = d;
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class sia { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tokenizer; tokenizer = new StringTokenizer(reader.readLine()); int n = Integer.parseInt(tokenizer.nextToken()); int m = Integer.parseInt(tokenizer.nextToken()); tokenizer = new StringTokenizer(reader.readLine()); long[] a = new long[n]; long[] curr = new long[n]; for(int i = 0; i < n; i++) { a[i] = Integer.parseInt(tokenizer.nextToken()); curr[i] = 0; } // Arrays.sort(a); long prevD = 0L; for(int i = 0; i < m; i++) { tokenizer = new StringTokenizer(reader.readLine()); long d = Integer.parseInt(tokenizer.nextToken()); long b = Integer.parseInt(tokenizer.nextToken()); long ret = 0; long days = d - prevD; for(int j = 0; j < n; j++) { curr[j] += days * a[j]; ret += Math.max(0, curr[j] - b); curr[j] = Math.min(b, curr[j]); } System.out.println(ret); prevD = d; } } } |
English