Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: lingusso
Problemset: สูงต่ำในตาราง
Language: cpp
Time: 0.002 second
Submitted On: 2026-04-10 16:41:04
#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;
}
}
}
//cout<<maxid<<minid;
if(maxid != minid){
//cout<<min<<" "<<max<<"\n";
cout<<max-min+2*b;
return 0;
}
int mint=2e9,maxt=-2e9;
int r = max - min;
//cout<<r;
for(int i=0;i<n;i++){
if(i == minid){
continue;
}
for(int j=0;j<n;j++){
if(arr[i][j]<mint){
mint = arr[i][j];
}
}
}
//cout<<mint<<"\n";
if(max - mint + 2*b > r){
r = max - mint + 2*b;
}
for(int i=0;i<n;i++){
if(i == maxid){
continue;
}
for(int j=0;j<n;j++){
if(arr[i][j]>maxt){
maxt = arr[i][j];
}
}
}
if(r < maxt - min+2*b){
r = maxt - min + 2*b;
}
//cout<<maxt<<"\n";
cout<<r;
return 0;
}