CCF CSP Brush Question Record 26-201809-2 Compras (Java)

Número de pregunta: 201809-2
Nombre de la pregunta: Compras de comestibles
límite de tiempo: 1.0 s
Limite de memoria: 256,0 MB
Descripción del problema:

Descripción del problema

  Little H y Little W llegaron a una calle y compraron alimentos por separado. El proceso de comprar alimentos se puede describir como ir a la tienda a comprar algunos alimentos y luego ir a una plaza al lado para cargar los alimentos en el carrito. Ambos compran n tipos de verduras. Comida, por lo que debe cargarse n veces. Específicamente, para H pequeño, hay n períodos de tiempo disjuntos [a1, b1], [a2, b2] ... [an, bn] se están cargando, y para W pequeño, hay n períodos de tiempo disjuntos Se está cargando el período de tiempo [c1, d1], [c2, d2] ... [cn, dn]. Entre ellos, un período de tiempo [s, t] representa el tiempo desde el tiempo s hasta el tiempo t, y la duración es ts.
  Como son buenos amigos, todos charlan mientras cargan el coche en la plaza y quieren saber cuánto tiempo pueden charlar.

Formato de entrada

  La primera línea de entrada contiene un número entero positivo n, que representa el número de períodos de tiempo.
  En las siguientes n líneas, cada línea tiene dos números ai, bi, que describen el período de tiempo de cada carga de H.
  En las siguientes n líneas, cada línea tiene dos números ci, di, que describen el período de tiempo de cada carga de W.

Formato de salida

  Muestra una línea, un número entero positivo, que indica cuánto tiempo pueden hablar los dos.

Entrada de muestra

4
1 3
5 6
9 13
14 15
2 4
5 7
10 11
13 14

Salida de muestra

3

Tamaño de datos y convención

  Para todos los casos de uso de evaluación, 1 ≤ n ≤ 2000, ai <bi <ai + 1, ci <di <ci + 1, para todo i (1 ≤ i ≤ n), 1 ≤ ai, bi, ci, di ≤ 1000000.

 

import java.util.Scanner;
public class 买菜 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int[] a=new int[1000001];
		int[] b=new int[1000001];
		for(int i=1;i<=n;i++){
			int s=sc.nextInt();
			int t=sc.nextInt();
			for(int j=s;j<t;j++){
			a[j]=1;
			}
		}
		for(int i=1;i<=n;i++){
			int s=sc.nextInt();
			int t=sc.nextInt();
			for(int j=s;j<t;j++){
			b[j]=1;
			}
		}
		int res=0;
		for(int i=1;i<=1000000;i++){
			if(a[i]==b[i]&&a[i]!=0&&b[i]!=0){
				res++;
			}
		}
		System.out.println(res);
	}
}

 

Supongo que te gusta

Origin blog.csdn.net/m0_37483148/article/details/108365480
Recomendado
Clasificación