Submission #1339793

#TimeUsernameProblemLanguageResultExecution timeMemory
1339793tudor_costinSuperpiece (EGOI22_superpiece)C++20
0 / 100
3 ms344 KiB
#include <bits/stdc++.h>

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 l=0,r=1e9;
    int ans=r;
    while(l<=r)
    {
        int mid=(l+r)/2;
        int B=mid;
        pair<int,int> intervy={0,min(B,2*B-p)};
        pair<int,int> intervx={0,min(B,2*B-q)};
        if(intervy.first%2!=p%2) intervy.first++;
        if(intervy.second%2!=p%2) intervy.second--;
        if(intervx.first%2!=q%2) intervx.first++;
        if(intervx.second%2!=q%2) intervx.second--;
        bool ok=1;
        if(intervy.first>intervy.second) ok=0;
        if(intervx.first>intervx.second) ok=0;
        ///cout<<mid<<' '<<intervx.first<<' '<<intervx.second<<'\n';
        int low=intervy.first+intervx.first,high=intervx.second+intervy.second;
        if(B<low || B>high) ok=0;
        if(ok)
        {
            ans=mid;
            r=mid-1;
        }
        else l=mid+1;
    }
    cout<<ans<<'\n';
}
int main()
{
    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...