import java.io.*;
import java.util.StringTokenizer;
/**
* Created by gmatuszewski on 28.09.2015.
*/
public class sia {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
sia(reader, writer);
writer.close();
System.exit(0);
}
public static void sia(BufferedReader reader, BufferedWriter writer) throws IOException {
StringTokenizer st;
st = new StringTokenizer(reader.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int[] growth = new int[n];
long[] fields = new long[n];
st = new StringTokenizer(reader.readLine());
for (int i = 0; i < n; i++) {
growth[i] = Integer.parseInt(st.nextToken());
}
long prevDay = 0;
while (m-- > 0){
st = new StringTokenizer(reader.readLine());
long sum = 0;
long day = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
for (int i = 0; i < fields.length; i++) {
// update grass hight
fields[i] += (day - prevDay) * growth[i];
// trim grass
sum += Math.max(0, fields[i] - b);
fields[i] = Math.min(fields[i], b);
}
prevDay = day;
writer.write(Long.toString(sum));
writer.newLine();
}
writer.flush();
}
}
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 49 50 51 52 53 54 55 56 57 58 | import java.io.*; import java.util.StringTokenizer; /** * Created by gmatuszewski on 28.09.2015. */ public class sia { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); sia(reader, writer); writer.close(); System.exit(0); } public static void sia(BufferedReader reader, BufferedWriter writer) throws IOException { StringTokenizer st; st = new StringTokenizer(reader.readLine()); int n = Integer.parseInt(st.nextToken()); int m = Integer.parseInt(st.nextToken()); int[] growth = new int[n]; long[] fields = new long[n]; st = new StringTokenizer(reader.readLine()); for (int i = 0; i < n; i++) { growth[i] = Integer.parseInt(st.nextToken()); } long prevDay = 0; while (m-- > 0){ st = new StringTokenizer(reader.readLine()); long sum = 0; long day = Long.parseLong(st.nextToken()); long b = Long.parseLong(st.nextToken()); for (int i = 0; i < fields.length; i++) { // update grass hight fields[i] += (day - prevDay) * growth[i]; // trim grass sum += Math.max(0, fields[i] - b); fields[i] = Math.min(fields[i], b); } prevDay = day; writer.write(Long.toString(sum)); writer.newLine(); } writer.flush(); } } |
English