2 条题解
-
1蒟蒻cz (褚战) LV 8 MOD @ 2023-06-12 15:03:00
#include<bits/stdc++.h> using namespace std; int main(){ int n,i,j; cin>>n>>i>>j; int d=min(min(i-1,n-i),min(j-1,n-j)); int idx=d+1,jdx=d,k=4*(n-d)*d; int minidx=d+1,maxidx=n-d,minjdx=d+1,maxjdx=n-d; while(idx!=i||jdx!=j){ while(jdx+1<=maxjdx){ jdx++; k++; if(idx==i&&jdx==j){ cout<<k; return 0; } } minidx++; while(idx+1<=maxidx){ idx++; k++; if(idx==i&&jdx==j){ cout<<k; return 0; } } maxjdx--; while(jdx-1>=minjdx){ jdx--; k++; if(idx==i&&jdx==j){ cout<<k; return 0; } } maxidx--; while(idx-1>=minidx){ idx--; k++; if(idx==i&&jdx==j){ cout<<k; return 0; } } minjdx++; } }
-
02023-05-16 20:51:36@
#include<bits/stdc++.h>//太难了看不懂的代码
using namespace std;
int main(){
int n,i,j;
cin>>n>>i>>j;
int d=min(min(i-1,n-i),min(j-1,n-j));
int idx=d+1,jdx=d,k=4*(n-d)*d;
int minidx=d+1,maxidx=n-d,minjdx=d+1,maxjdx=n-d;
while(idx!=i||jdx!=j){
while(jdx+1<=maxjdx){
jdx++;
k++;
if(idx==i&&jdx==j){
cout<<k;
return 0;
}
}
minidx++;
while(idx+1<=maxidx){
idx++;
k++;
if(idx==i&&jdx==j){
cout<<k;
return 0;
}
}
maxjdx--;
while(jdx-1>=minjdx){
jdx--;
k++;
if(idx==i&&jdx==j){
cout<<k;
return 0;
}
}
maxidx--;
while(idx-1>=minidx){
idx--;
k++;
if(idx==i&&jdx==j){
cout<<k;
return 0;
}
}
minjdx++;
}
}
- 1
信息
- ID
- 2321
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者