Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 294 - The Evil Temple and the Moving Rocks

Special Judge

Problem Statistics

Solved Member: 15  Submission: 81  User Tried: 18

Statement:

hh是一個神祕的龍使,在hh奮力的殺了幾隻弱弱的小怪後,抵達了一個四周都是牆壁,由 N x N 塊磁磚所構成的房間,裡面空無一物。

此時hh發現牆上寫著:要抵達下一個房間,你就必須依靠石頭所發出的聲音!

做為一個優秀的龍使,hh馬上就知道該如何處理這種狀況,hh有4種石頭:

  •'^': 這種石頭只會往上移動。
  •'<': 這種石頭只會往左移動。
  •'>': 這種石頭只會往右移動。
  •'v': 這種石頭只會左下移動。

由於hh非常厲害,所以他的包包中裝了無限顆的這些石頭,為了抵達下個房間,hh必須在一些磁磚上放上石頭(每個磁磚上只能放一顆石頭,否則房間會爆炸!),然後hh會使用魔法讓一顆石頭產生魔法能量,此時這顆石頭會依據自己的種類移動一格,並消耗掉 1 單位的魔力,直到撞到另一顆石頭或牆壁才停止(若一開始障礙已在他面前,這顆石頭並不會移動,撞到的同時也會消耗 1 單位的魔力)。接下來這顆石頭將停止移動,若他撞到的是牆壁,或者魔力的總消耗超過107,hh將再也無法驅使他移動;反之魔法能量將會全部傳遞給撞到的石頭,使他移動,並重複著上述的動作。

當石頭已移動了一格以上才撞到障礙,便會發出一個聲響,當產生了至少 x 個聲響時,下一個房間的房門就會出現,此時的石頭仍會繼續移動直到撞到牆壁或hh魔力耗盡,然後hh才會前往下個房間。

以下會告訴你發出聲響與不發出聲響的情況。

因為在撞到另一顆石頭前已經移動1格以上,所以會發出聲響。


因為在撞到牆壁前已經移動1格以上,所以會發出聲響。


因為在撞到另一顆石頭前沒有移動任何一格,所以不發出聲響。


因為在撞到牆壁前沒有移動任何一格,所以不發出聲響。


告訴你 N 與 x ,請你幫助hh選擇石頭該如何放置吧!

Input:Output:

依序會有以下4筆測試資料:

  • N=3, x=2
  • N=5, x=5
  • N=90, x=81000
  • N=100, x=100000

其中第一筆是Sample。
輸出 N 行,每行 N 個字元,第i行的第j個字元表示該磁磚的狀態,必須剛好是以下五種字元的一種:

  •'^', '<', '>', 或 'v': 表示此磁磚上存在其中的一種石頭。
  •'.': 表示此磁磚上沒有石頭。

然後輸出兩個數字r c (1 ≤ r, c ≤ N),表示hh一開始必須用魔力驅使哪一顆石頭移動,注意,此格必須一定要有石頭。

若有多組解法,輸出任意一組即可。

Sample Input:Sample Output:

3 2
>vv
^<.
^.<
1 3

HINT:

關於Sample:


sound 0


sound 1


sound 2

接下來會產生無限循環直到總魔力消耗了107才停止,且這些移動不會發出聲響。


最後停止時剛好有兩聲,是一組解喔!

Source:

Codeforces #192

Problem Setter

Testdata:

TestTimeMemoryScore
01000ms262144kb
11000ms262144kb20
21000ms262144kb40
31000ms262144kb40