Submission

Status:

--------PP

Subtask/Task Score:

20/100

Score: 20

User: lingusso

Problemset: สูงต่ำในตาราง

Language: cpp

Time: 0.003 second

Submitted On: 2026-04-10 15:29:24

#include<iostream>

using namespace std;
int main(){
	int n,b;
	cin>>n>>b;
	int arr[n][n],max=0,min,maxid,minid=0;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>arr[i][j];
			if(i==0 && j==0){
				min = arr[i][j];
			}
			if(arr[i][j]>max){
				max = arr[i][j];
				maxid = i;
			}
			if(arr[i][j]<min){
				min = arr[i][j];
				minid = i;
			}
		}
	}
	int lastmax = maxid;
	//cout<<maxid<<" "<<minid<<"\n";
	for(int i=0;i<n;i++){
		if(i == maxid){
			continue;
		}
		for(int j=0;j<n;j++){
			if(arr[i][j]-b <min){
				min = arr[i][j]-b;
				minid = i;
			}
			if(arr[i][j]+b >max){
				max = arr[i][j];
				maxid = i;
			}
		}
	}
	if(minid != maxid){
		max = max +b;
	}
	if(lastmax != maxid){
		min = min-b;
	}
	if(minid == maxid){
		cout<<max-min;
		return 0;
	}
	//cout<<min<<" "<<max<<"\n";
	cout<<max-min;
	return 0;
}