http://ac.jobdu.com/problem.php?pid=1384 基本思路很简单,从最右上角找起。
九度的OJ做得还是不太行啊。必须要int main()才行,这道题时间卡得太紧,用cin和java都不行。
#include <stdio.h>
using namespace std;
int main()
{
int m, n, t;
int a[1000][1000];
while(scanf("%d %d",&m,&n) != EOF)
{
scanf("%d",&t);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d",&a[i][j]);
}
}
int row = 0;
int col = n - 1;
bool found = false;
while (row < m && col >= 0) {
if (a[row][col] == t) {
found = true;
break;
}
else if (a[row][col] > t) {
col--;
}
else {
row++;
}
}
if (found) {
printf("Yes
");
}
else {
printf("No
");
}
}
}
/**************************************************************
Problem: 1384
User: lautsie
Language: C++
Result: Accepted
Time:670 ms
Memory:4856 kb
****************************************************************/