POJ C程序设计进阶 编程题#3:寻找山顶
2015-08-14 23:14
447 查看
编程题#3:寻找山顶
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
在一个m×n的山地上,已知每个地块的平均高程,请求出所有山顶所在的地块(所谓山顶,就是其地块平均高程不比其上下左右相邻的四个地块每个地块的平均高程小的地方)。输入
第一行是两个整数,表示山地的长m(5≤m≤20)和宽n(5≤n≤20)。其后m行为一个m×n的整数矩阵,表示每个地块的平均高程。每行的整数间用一个空格分隔。
输出
输出所有上顶所在地块的位置。每行一个。按先m值从小到大,再n值从小到大的顺序输出。样例输入
10 5 0 76 81 34 66 1 13 58 4 40 5 24 17 6 65 13 13 76 3 20 8 36 12 60 37 42 53 87 10 65 42 25 47 41 33 71 69 94 24 12 92 11 71 3 82 91 90 20 95 44
样例输出
0 2 0 4 2 1 2 4 3 0 3 2 4 3 5 2 5 4 7 2 8 0 8 4 9 3
#include<stdio.h> using namespace std; int main() { int m, n, i, j; scanf("%d %d", &m, &n); int a[m] ; for (i=0;i<m;i++) { for (j=0;j<n;j++) { scanf("%d", &a[i][j]); } } for (i=0;i<m;i++) { for (j=0;j<n;j++) { bool shan = true; if (shan && i-1>=0) { if (a[i][j]<a[i-1][j]) { shan = false; } } if (shan && i+1<m) { if (a[i][j]<a[i+1][j]) { shan = false; } } if (shan && j-1>=0) { if (a[i][j]<a[i][j-1]) { shan = false; } } if (shan && j+1<n) { if (a[i][j]<a[i][j+1]) { shan = false; } } if (shan) { printf("%d %d\n", i, j); } } } return 0; }
相关文章推荐
- Struts2集成spring3后action的几种实例方法
- POJ C程序设计进阶 编程题#2: 配对碱基链
- 贪心算法New Year BonusGrant
- JavaEE细节问题01——访问web资源的相对路径和绝对路径
- JAVA 23 种设计模式
- 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析学习笔记
- 关于C++虚函数表的那些事儿
- Struts之mvc设计模式
- Java 抽象类与接口的区别
- java项目经验
- 修改配置Eclipse提示代码以及空格上屏
- 深入分析 Java 中的中文编码问题
- VC++ AfxBeginThread 与 CreateThread 的区别
- C#删除文件和文件夹到回收站
- 编写高质量代码改善C#程序的157个建议——建议27:在查询中使用Lambda表达式
- leetCode_Algotithms_TwoSum
- Java JDBC 学习笔记 - 注册驱动类的4种方式
- C++ 排序函数 sort(),qsort()的用法
- Java学习路线图,专为新手定制的Java学习计划建议
- C++文件处理