1. 程式人生 > >DTOI 2018 10.26測試 T1 新的世界

DTOI 2018 10.26測試 T1 新的世界

T1 新的世界(neworld)

時間限制: 1 Sec 記憶體限制: 256 MB

題目描述

在一個 N N M M 列的網格中,第 i

i j j 列的格子有一個可變的“亮度”
L i
, j L_{i,j}
(初始時都為0)和一個固定的“不透光度”。現在在 r r c
c
列放入一個亮度為 l l 的光源,NEWorld遊戲引擎會根據以下邏輯,讓光源逐步“照亮”附近的方格:

先將光源所在方格的亮度   L r , c \ L_{r,c} 賦值為 l l 。而對於 i i j j 列一個不是光源的方格,它的亮度由   A i , j \ A_{i,j} 和四周方格的亮度所確定。
定義 F i , j = m a x ( L i 1 , j , L i + 1 , j , L i , j 1 , L i + 1 , j , L i , j + 1 ) A i , j F_{i,j}=max({L_{i-1,j},L_{i+1,j},L_{i,j-1},L_{i+1,j},L_{i,j+1}})−A_{i,j} (此處當 1 i N 1≤i′≤N
不成立或 1 j M 1≤j′≤M 不成立時, L i j L_{i′j′} 被看作是0),我們稱方格 ( i , j ) (i,j) 的亮度 L i , j L_{i,j} 是“有效”的,當且僅當 L i , j = F i , j L_{i,j}=F_{i,j} 。顯然初始時所有亮度都是“有效”的,而放入光源後則可能存在亮度“無效”的方格。

現在引擎會迴圈執行操作,每一步找出當前所有亮度“無效”(不包括光源)的方格中,行數 i i 最小的那一個(如果有多個行數 i i
最小的,就選擇其中列數 j j 最小的方格),然後計算 F i , j F_{i,j} 的值,將其賦值給 L i , j L_{i,j}
。操作會不停地執行,直到所有亮度都“有效”為止(請參考樣例,迴圈一定會在有限步操作後結束)。請問最後 p p q q 列的方格亮度值 L p , q L_{p,q} 是多少?

注: m a x ( a , b , c , d , e ) max (a,b,c,d,e) 表示取 a , b , c , d , e a,b,c,d,e 中最大的值。

輸入

輸入檔案第一行兩個正整數 N , M N,M ,表示網格大小為 N N M M 列。

接下來的 N N 行,每行 M M 個正整數,其中第 i i j j 列的正整數為 A i , j A_{i,j}

最後一行包含五個正整數 r , c , l , p , q r,c,l,p,q 表示在 r r c c 列放入亮度為 l l 的光源,需要查詢的是亮度計算完成後 p p q q
列的亮度值。

輸出

輸出檔案包含一行一個正整數,表示最後 L p , q L_{p,q} 的值。

資料範圍

對於 60 % 60 \% 的資料: N , M 100 N,M≤100

對於 100 % 100\% 的資料: N , M 500 , 1 A i , j , l 1 0 9 , 1 r , p N , 1 c , q M N , M 500 , 1 A i , j , l 1 0 9 , 1 r , p N , 1 c , q M N,M≤500,1≤A_{i,j},l≤10^9,1≤r,p≤N,1≤c,q≤M N,M≤500,1≤A_{i,j},l≤10^9,1≤r,p≤N,1≤c,q≤M