2020 Winter Holiday [gmoj2221] [rugido de gallo] [Simulación]

Descripción del título

Hay dos gallos favoritos G1 y G2 en el país del pollo, cada rugido tiene un valor de volumen. Una mañana, G1 comenzó a sonar primero, con un valor de volumen de x, y G2 comenzó a sonar después de escuchar el sonido de G1, con un valor de volumen de y. A G1 y G2 les gustaría ajustar su volumen al mismo volumen. Por lo tanto, negociaron k veces, y después de cada negociación, aumentaron o disminuyeron un cierto valor de volumen y volvieron a croar (el valor de volumen no debería ser inferior a 0). G1 y G2 son aburridos por naturaleza, no saben que después de s (s≤k) tiempos de negociación, el volumen del pitido ya es el mismo. ¿Programar para ayudar a G1 y G2 a calcular el volumen mínimo cuando tengan el mismo valor de volumen (es decir, el más pequeño)?
Nota: Si x es igual a y desde el principio, no se requiere negociación.

De entrada

Ingrese un total de k + 1 líneas.
Los tres enteros x, y y k en la primera línea representan respectivamente el valor de sonoridad del sonido de G1 y G2 en el primer pitido.Se realizaron un total de k consultas y se ajustó el valor de sonoridad del pitido.
En las siguientes k líneas, cada línea contiene 4 enteros ai, xi, bi e yi, lo que indica que el valor de volumen de la i-ésima negociación G1 aumenta (ai es igual a 1) o disminuye (ai es igual a -1), y G2 aumenta (bi es igual a 1) O reduzca (bi igual a -1) el valor de volumen yi.

Salida

Se emite un número entero en una línea, lo que indica que al menos cuántas veces después de la negociación G1 y G2 tienen el mismo valor de volumen. Si aún no es lo mismo después de k consultas, entonces arroje "-1" (sin comillas dobles).

Entrada de muestra

Entrada1:

2 3 3
1 1 -1 0
-1 1 1 1
1 1 -1 1

Entrada2:

2 3 4
1 2 -1 2
-1 1 1 1
-1 4 1 1
1 4 1 1

Entrada3:

2 3 1
1 2 -1 2

Salida de muestra
Salida1:
1

Salida2:
4

Salida3:
-1

Limitación del rango de datos

Inserte la descripción de la imagen aquí

Pronto

Muestra1:
en la muestra 1, los valores de volumen del primer pitido de G1 y G2 son 2 y 3, respectivamente, que son diferentes. En la primera negociación, G1 aumenta en 1, G2 disminuye en 0 y los valores de sonoridad son 3 y 3, respectivamente, por lo que después de una negociación, los valores de sonoridad de ambos serán los mismos. Después de 3 consultas, sus voces también se pueden ajustar a la misma, pero al menos 1 consulta es suficiente.

Muestra2:
en la muestra 2, los valores de volumen del primer pitido de G1 y G2 son 2 y 3, respectivamente, que son diferentes. Los valores de sonoridad del silbato después de la primera negociación son 4 y 1, respectivamente, los valores de sonoridad del silbato después de la segunda negociación son 3 y 2, y los valores de sonoridad del silbato después de la tercera negociación son 0 (no menos de 0) y 3 Después de la 4ta negociación, los valores de sonoridad del pitido son 4 y 4, respectivamente, así que después de 4 consultas, los valores de sonoridad de ambos son los mismos.

Muestra3:
en la muestra 3, los valores de volumen del primer pitido de G1 y G2 son 2 y 3, respectivamente, que son diferentes. En la primera negociación, G1 aumenta en 2, G2 disminuye en 2 y los valores de sonoridad son 4 y 1. respectivamente. Por lo tanto, después de 1 negociación, los valores de sonoridad de los dos no pueden ser iguales, por lo tanto, genera "-1".

Análisis

De hecho, cada entrada simula el cambio del volumen actual. . .
Salga cada vez que se considere igual.
Presta atención al caso de la igualdad de juicio.

Código en

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int g1,g2,k,ans,ff;
int main()
{
    freopen("rooster.in","r",stdin);
	freopen("rooster.out","w",stdout);
	cin>>g1>>g2>>k;
	if(g1==g2)
	{
		cout<<0;
		return 0;
	}
	for(int i=1;i<=k;i++)
	{
		ans++;
		int a,x,b,y;
		cin>>a>>x>>b>>y;
		if(a==1) g1+=x;
		else g1=max(0,g1-x);
		if(b==1) g2+=y;
		else g2=max(0,g2-y);
		if(g1==g2)
		{
			ff=1;
			break;
		}
	}
	if(ff==1) cout<<ans;
	else cout<<-1;
	fclose(stdin);
	fclose(stdout); 
    return 0;
}

110 artículos originales publicados · 100 alabanzas · 8011 visitas

Supongo que te gusta

Origin blog.csdn.net/dglyr/article/details/105150456
Recomendado
Clasificación