師大有三寶,妹子真不少,芳姐or芳哥,認路本領好!
眾所周知,師大的芳哥帶隊本領高強,被眾粉絲尊稱為“地圖”!芳哥對任意時刻,任意地點,任意地形都駕輕就熟,比如校園,密室,KTV,地鐵,機場,山間,田野,丘陵等等等等。
嗯,有一天芳哥帶著小伙伴來到一片丘陵,這片丘陵廣袤無垠,層巒疊嶂,就像一個二維數組的樣子,於是芳哥花了0.2333秒記住了這片土地。
芳姐將這片丘陵分為N*M個區域,然後她記住了每個區域的海拔。厲害吧~而且芳哥發現一個有趣的地方,就是對於同一個緯度,東邊總是比西邊高;對於同一個經度,南邊總是比北邊高。
晚上在芳哥清點人數時發現小胖不見了,趕緊打電話給小胖,小胖也不知道自己現在在哪兒,只知道自己現在所在位置的海拔為K。芳哥太擔心小胖以至於不能思考了,於是判斷小胖是否還在這片丘陵的任務就落到了你的頭上。值得欣慰的是,芳姐最多還能回答你N+M次詢問,你可以詢問她X,Y這個坐標的海拔是多少。如果你發現某個位置的海拔恰好等於小胖所在的海拔,那麼你就認為小胖還在這片丘陵。
如果你發現小胖還在這片丘陵,輸出YES,否則輸出NO。如果你沒在限定的次數內判斷出來,芳哥讓我給你一個WA。
首先是一個整數T(T<=50),表示數據組數。
每組數據首先是三個整數N, M(1 <= N, M <= 1000), K(int范圍),表示矩陣行數、列數和小胖所在的海拔。
然後對於你的程序的每個詢問,結果也會作為輸入返回,保證詢問結果都在int內。
在確定答案之前,每行輸出一個詢問,為兩個整數X,Y,用空格隔開,表示詢問A[X][Y]這個數是多少。
當你的程序能夠判斷結果時,按照題意輸出一行結果 “YES” 或 “NO”(引號作為強調),如果答案正確將直接進入下一組數據,否則本次提交結果為WA。
注意不合法的詢問或判斷將直接導致WA、RE或TLE。
比如這片丘陵是這個樣子的:
大小為4 x 3
1 9 99
2 19 100
30 300 3000
99 999 9999
如果小胖告訴你他所在的海拔為300。一種可能判斷過程如下:
詢問1 2
芳哥告訴你9
詢問4 3
芳哥告訴你9999
詢問3 2
芳哥告訴你300
這時你可以判斷小胖還在這片丘陵上。輸出YES即可。
注意:二維數組的下標從1開始。
===============================
特別鳴謝Liserious贊助題目名。
===============================
特別注意:
對於C/C++選手,請在每個輸出後加上fflush(stdout);
對於JAVA選手,請在每個輸出後加上System.out.flush();
對於Python選手,請在每個輸出後加上sys.stdout.flush()。需要import sys。
對於Pascal選手,請在每個輸出後加上Flush(StdOut),或者使用writeln()來輸出。
#include#include int n,m,k,t,nm,x,y,flag,a; int main() { scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&k); nm=n+m; flag=0; x=1,y=m;//這樣一定可以判斷k是否在裡面 while(nm) { nm--; printf("%d %d\n",x,y);fflush(stdout); scanf("%d",&a); if(a==k) { printf("YES\n");flag=1;fflush(stdout); break; } if(a>k)y--; else x++; if(x>n||y<=0)break; } if(flag==0)printf("NO\n"),fflush(stdout); } }