jzoj2221 公雞打鳴

2021-10-04 12:12:17 字數 2195 閱讀 7154

題目描述

雞國中有兩隻最喜歡打鳴的公雞 g1 和 g2,它們每一次打鳴都有乙個聲音的響度值。一天清晨,g1 開始先開始打鳴,響度值為 x,g2 聽到 g1 的打鳴後也開始打鳴,響度值為 y。g1 和 g2 很想把它們打鳴聲音的響度值調成一樣。所以它們進行了 k 次協商,每一次協商後就各自增加或減少一定的響度值再打鳴一次(打鳴的響度值不能小於 0)。g1 和 g2 生性遲鈍,它們不知道其實經過 s(s≤k)次協商後,打鳴聲音的響度值已經相同了。請程式設計幫 g1 和 g2 計算一下它們打鳴聲音的響度值相同時最少經過了幾次協商(即最小的 s)?

注意:如果 x 一開始就等於 y,則不需要協商。

輸入

輸入共 k+1 行。

第 1 行三個整數 x,y 和 k,分別表示 g1、g2 第一次打鳴時聲音的響度值,共進行了 k次協商並調整打鳴聲音的響度值。

接下來 k 行,每行包含 4 個整數 ai,xi,bi,yi,表示第 i 次協商 g1 增加(ai等於 1)或減少(ai等於-1)的響度值為 xi,g2 增加(bi等於 1)或減少(bi等於-1)的響度值 yi。

輸出

輸出 1 行乙個整數,表示至少經過多少次協商後 g1 和 g2 的打鳴響度值已經相同。如果經過 k 次協商後仍然無法相同,則輸出「-1」(不包含雙引號)。

樣例輸入

input1:

2 3 3

1 1 -1 0

-1 1 1 1

1 1 -1 1

input2:

2 3 4

1 2 -1 2

-1 1 1 1

-1 4 1 1

1 4 1 1

input3:

2 3 1

1 2 -1 2

樣例輸出

output1:

1
output2:

4
output3:

-1
資料範圍限制

提示

sample1:

在樣例 1 中,g1 和 g2 第 1 次打鳴的響度值分別為 2 和 3,不相同。第 1 次協商 g1 增加 1,g2 減少 0,響度值分別為 3 和 3,所以經過 1 次協商後它們兩個打鳴的響度值已經相同。經過 3 次協商時,它們的聲音也能調成一樣,但至少需要 1 次協商就可以了。

sample2:

在樣例 2 中,g1 和 g2 第 1 次打鳴的響度值分別為 2 和 3,不相同。第 1 次協商後打鳴的響度值分別為 4 和 1,第 2 次協商後打鳴的響度值分別為 3 和 2,第 3 次協商後打鳴的響度值分別為 0(不能小於 0)和 3,第 4 次協商後打鳴的響度值分別為 4 和 4, 所以經過 4 次協商後它們兩個打鳴的響度值相同。

sample3:

在樣例 3 中,g1 和 g2 第 1 次打鳴的響度值分別為 2 和 3,不相同。第 1 次協商 g1 增加 2,g2 減少 2,響度值分別為 4 和 1,所以經過 1 次協商後它們兩個打鳴的響度值仍然無法相同,則輸出「-1」。

解題思路

很明顯的暴力,每次把響度值按要求協調

在處理之前要特判a==

ba==b

a==b

#include

#include

using namespace std;

int a,b,k,i;

int main()

for(i=

1;i<=k;i++)if

(a==b)

printf

("%d"

,i);

else

printf

("-1");

}

2 2 2 選擇排序

include void main for i 0 i 6 i for m 0 m 6 m 以上程式正確輸出。錯誤程式 include void main for i 0 i 6 i index a i a i min a key index for m 0 m 6 m 原因分析 在這三步中 ind...

2 2 2 隨機事件

1.隨機實驗 對隨機事件的研究始於觀測,各種觀測手段統稱實驗。隨機實驗 對隨機現象的觀測 2.隨機實驗的結果 隨機實驗的每乙個結果都被稱為樣本,記為s,所有可能結果的集合稱為樣本空間,記為s。例1.1 點選數 s 可以是數 2 測量血型 s 也可以是陣列 3 彩票號碼 s 可以是屬性 4 連續7天觀...

redis安裝需要》2 2 2

gem install redis error error installing redis redis requires ruby version 2.2.2.查了查資料,centos7百勝庫中的紅寶石的版本支援到2.0.0,可寶石安裝redis的需要最低是2.2.2,自己編譯的紅寶石原始碼,再執...