Submission #1339820

#TimeUsernameProblemLanguageResultExecution timeMemory
1339820tudor_costinSuperpiece (EGOI22_superpiece)C++20
0 / 100
788 ms460 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{
    string s;
    cin>>s;
    assert(s=="N");
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    int p=abs(a-c),q=abs(b-d);
    int maxi=max(p,q);
    int mini=min(p,q);
    pair<int,int> op={maxi/2,maxi%2};
    int tr=op.first+op.second*2;
    while(true)
    {
        if(mini<=tr && tr%2==mini%2)
        {
            if(op.first==0 && mini%4!=tr%4) cout<<op.first+op.second+2<<'\n';
            else cout<<op.first+op.second<<'\n';
            break;
        }
        op.first--;
        op.second+=2;
        tr=op.first+op.second*2;
    }
    /*int tr=op.first+op.second*2;
    if(tr%2!=mini%2)
    {
        if(op.second==0)
        {
            op.first--;
            op.second=2;
        }
        else op.first++;
    }
    tr=op.first+op.second*2;
    bool only4=0;
    if(op.first==0) only4=1;
    pair<int,int> I={-tr,tr};
    int ans;
    if(-tr<=mini && mini<=tr)
    {
        if(!only4)
        {
            ans=op.first+op.second;
            cout<<ans<<'\n';
            return;
        }
        else if(mini%4==0)
        {
            ans=op.first+op.second;
            cout<<ans<<'\n';
            return;
        }
        else
        {
            ans=op.first+op.second+2;
            cout<<ans<<'\n';
            return;
        }
    }
    int dist;
    if(mini>tr) dist=mini-tr;
    else dist=-tr-mini;
    ans=op.first+op.second;
    if(dist%4==0)
    {
        ans=ans+dist/2;
        cout<<ans<<'\n';
        return;
    }
    else if(!only4)
    {
        dist+=2;
        ans=ans+dist/2;
        cout<<ans<<'\n';
        return;
    }
    else
    {
        dist-=2;
        ans=ans+dist/2+2;
        cout<<ans<<'\n';
        return;
    }
    cout<<ans<<'\n';*/
}
signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...