2 条题解

  • 1
    @ 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++;
    }
    }
    
  • 0
    @ 2023-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%
上传者