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