import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class sia {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
run(input);
}
public static void run(BufferedReader input) throws IOException {
String[] values = input.readLine().split(" ");
int n = Integer.parseInt(values[0]);
int m = Integer.parseInt(values[1]);
int[] growths = new int[n];
long[] state = new long[n];
int i = 0;
for(String s : input.readLine().split(" ")) {
growths[i] = Integer.parseInt(s);
++i;
}
long prevDay = 0;
long day;
long setting;
long dayDiff;
long result;
for (i = 0; i < m; ++i) {
result = 0;
values = input.readLine().split(" ");
day = Long.parseLong(values[0]);
setting = Long.parseLong(values[1]);
dayDiff = day - prevDay;
for (int p = 0; p < n; ++p) {
state[p] += dayDiff * growths[p];
if (state[p] > setting) {
result += state[p] - setting;
state[p] = setting;
}
}
prevDay = day;
System.out.println(result);
}
}
}
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 45 46 47 48 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class sia { public static void main(String[] args) throws IOException { BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); run(input); } public static void run(BufferedReader input) throws IOException { String[] values = input.readLine().split(" "); int n = Integer.parseInt(values[0]); int m = Integer.parseInt(values[1]); int[] growths = new int[n]; long[] state = new long[n]; int i = 0; for(String s : input.readLine().split(" ")) { growths[i] = Integer.parseInt(s); ++i; } long prevDay = 0; long day; long setting; long dayDiff; long result; for (i = 0; i < m; ++i) { result = 0; values = input.readLine().split(" "); day = Long.parseLong(values[0]); setting = Long.parseLong(values[1]); dayDiff = day - prevDay; for (int p = 0; p < n; ++p) { state[p] += dayDiff * growths[p]; if (state[p] > setting) { result += state[p] - setting; state[p] = setting; } } prevDay = day; System.out.println(result); } } } |
polski