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(); } } |