import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class sia { public static void main(String args[]) throws IOException { String line; BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\ynka\\Downloads\\sia_big\\sia_big.in")); // read m and n line = bufferedReader.readLine(); String[] arr = line.split("\\s"); int n_arow = Integer.parseInt(arr[0]); int m_koszen = Integer.parseInt(arr[1]); // read a int[] a = new int[n_arow]; long[] h = new long[n_arow]; line = bufferedReader.readLine(); arr = line.split("\\s"); for (int i = 0; i < n_arow; i++) { a[i] = Integer.parseInt(arr[i]); } long previous_day = 0; // read d and b for (int i = 0; i < m_koszen; i++) { line = bufferedReader.readLine(); arr = line.split("\\s"); long d = Long.parseLong(arr[0]); long b = Long.parseLong(arr[1]); //do one case long gain = 0; for (int j = 0; j < n_arow; j++) { h[j] += (d - previous_day) * a[j]; gain += Math.max(h[j] - b, 0); h[j] = Math.min(h[j], b); } System.out.println(gain); previous_day = d; } bufferedReader.close(); } }
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 | import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; public class sia { public static void main(String args[]) throws IOException { String line; BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\ynka\\Downloads\\sia_big\\sia_big.in")); // read m and n line = bufferedReader.readLine(); String[] arr = line.split("\\s"); int n_arow = Integer.parseInt(arr[0]); int m_koszen = Integer.parseInt(arr[1]); // read a int[] a = new int[n_arow]; long[] h = new long[n_arow]; line = bufferedReader.readLine(); arr = line.split("\\s"); for (int i = 0; i < n_arow; i++) { a[i] = Integer.parseInt(arr[i]); } long previous_day = 0; // read d and b for (int i = 0; i < m_koszen; i++) { line = bufferedReader.readLine(); arr = line.split("\\s"); long d = Long.parseLong(arr[0]); long b = Long.parseLong(arr[1]); //do one case long gain = 0; for (int j = 0; j < n_arow; j++) { h[j] += (d - previous_day) * a[j]; gain += Math.max(h[j] - b, 0); h[j] = Math.min(h[j], b); } System.out.println(gain); previous_day = d; } bufferedReader.close(); } } |