import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scn = new Scanner(System.in); int M = scn.nextInt(); int N = scn.nextInt(); int K = scn.nextInt(); ArrayList<Integer> li = new ArrayList<Integer>(); HashMap<Integer,Node> map = new HashMap<Integer,Node>(); int temp = 0; for(int i=1; i<M+1; i++) { for(int j=1; j<N+1; j++) { temp = scn.nextInt(); if(temp > 0) { Node node = new Node(); node.setM(i); node.setN(j); map.put(temp, node); li.add(temp); } } } Collections.sort(li); Collections.reverse(li); int maxNum = 0; int tempGo = 0; int tempBack = 0; Node tempNode = map.get(li.get(0)); tempGo = tempNode.getM() + 1; tempBack = tempNode.getN(); if(tempGo + tempBack <= K) { maxNum = li.get(0); } for(int i=1; i<li.size(); i++) { tempBack = map.get(li.get(i)).getM(); tempGo += Math.abs(map.get(li.get(i)).getN() - map.get(li.get(i-1)).getN()) + Math.abs(map.get(li.get(i)).getM() - map.get(li.get(i-1)).getM())+ 1; if(tempBack + tempGo <= K) { maxNum += li.get(i); } else { break; } } System.out.print(maxNum); } } class Node { int m; int n; public void setM(int m) { this.m = m; } public int getM() { return m; } public void setN(int n) { this.n = n; } public int getN() { return n; } }
点赞 2

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务