山峰,如果可以一直用暴力解决一切算法的话…
上代码!!!!!!!!!!!!
#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int a[n+2][m+2]={0};//这里一定要初始化才能通过测评
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
int t;
cin>>t;
for(int i=1;i<=t;i++){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
int t=a[x1][y1];
a[x1][y1]=a[x2][y2];
a[x2][y2]=t;
}
int sum=0;
int ans[n*m];
int k=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==1&&j==1){
if(a[i][j]>a[i+1][j]&&a[i][j]>a[i][j+1]){
sum++;
ans[k++]=i;
ans[k++]=j;
// 因为要最后才输出结果,所以不能这样子一次输出一行
// cout<<i<<" "<<j<<endl;
}
}else if(i==1&&j==m){
if(a[i][j]>a[i+1][j]&&a[i][j]>a[i][j-1]){
sum++;
// cout<<i<<" "<<j<<endl;
ans[k++]=i;
ans[k++]=j;
}
}else if(i==n&&j==1){
if(a[i][j]>a[i-1][j]&&a[i][j]>a[i][j+1]){
sum++;
// cout<<i<<" "<<j<<endl;
ans[k++]=i;
ans[k++]=j;
}
}else if(i==n&&j==m){
if(a[i][j]>a[i-1][j]&&a[i][j]>a[i][j-1]){
sum++;
// cout<<i<<" "<<j<<endl;
ans[k++]=i;
ans[k++]=j;
}
}else if(a[i][j]>a[i-1][j]&&a[i][j]>a[i+1][j]&&a[i][j]>a[i][j-1]&&a[i][j]>a[i][j+1]){
sum++;
// cout<<i<<" "<<j<<endl;
ans[k++]=i;
ans[k++]=j;
}
}
}
cout<<sum<<endl;
for(int i=0;i<k;i++){
cout<<ans[i]<<" ";
if(i%2==1) cout<<endl;
}
}