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