第一题
package ccf201809; import java.util.Scanner; public class p1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; int[] res = new int[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } res[0] = (a[0] + a[1]) / 2; res[n - 1] = (a[n - 1] + a[n - 2]) / 2; for (int i = 1; i < n - 1; i++) { res[i] = (a[i - 1] + a[i] + a[i + 1]) / 3; } for (int i = 0; i < n; i++) { System.out.print(res[i]+" "); } } }
第二题
package ccf201809; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class p2 { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String[] temp = bf.readLine().split(" "); int n = Integer.parseInt(temp[0]); int[] a = new int[n + 1]; int[] b = new int[n + 1]; int[] c = new int[n + 1]; int[] d = new int[n + 1]; getTime(bf, n, a, b); getTime(bf, n, c, d); int res = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(b[i]<c[j]){ continue; } if(a[i]>d[j]){ continue; } if ((c[j] >= a[i] && c[j] <= b[i]) && (d[j] >= b[i])) { res += b[i] - c[j]; } else if ((c[j] >= a[i] && c[j] <= b[i]) && (d[j] <= b[i])) { res += d[j] - c[j]; } else if ((d[j] >= a[i] && d[j] <= b[i]) && (c[j] <= a[i])) { res += d[j] - a[i]; } else if (c[j] <= a[i] && d[j] >= b[i]) { res += b[i] - a[i]; } } } System.out.println(res); } public static void getTime(BufferedReader bf, int n, int[] a, int[] b) throws IOException { for (int i = 1; i <= n; i++) { String[] line = bf.readLine().split(" "); for (int j = 0; j < line.length; j++) { a[i] = Integer.parseInt(line[0]); b[i] = Integer.parseInt(line[1]); } } } }