Submission #1134101

#TimeUsernameProblemLanguageResultExecution timeMemory
1134101alexddWish (LMIO19_noras)C++20
0 / 100
0 ms320 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long double ld;
int n,r;
vector<pair<int,int>> timp;
map<int,int> mp,nrm;
int mars[1000005];
signed main()
{
    cin>>n>>r;
    int a,b,c,d;
    for(int i=1;i<=n;i++)
    {
        cin>>a>>b>>c>>d;
        vector<ld> v(4);
        v[0] = (ld)(r-a-b)/(ld)(c+d-a-b);
        v[1] = (ld)(r-a+b)/(ld)(c+b-a-d);
        v[2] = (ld)(r+a-b)/(ld)(a+d-c-b);
        v[3] = (ld)(r+a+b)/(ld)(a+b-c-d);
        vector<ld> aux;
        for(ld t:v)
        {
            if(abs((ld)a + (ld)(c-a)*t) + abs((ld)b + (ld)(d-b)*t) == r)
            {
                aux.push_back(t);
            }
        }
        if((int)aux.size()==1)
            aux.push_back(aux[0]);
        if(!aux.empty())
        {
            if(aux[0]>aux[1])
                swap(aux[0],aux[1]);
            timp.push_back({ceil(aux[0]), floor(aux[1])});
        }
    }
    for(auto [x,y]:timp)
    {
        mp[x]++;
        mp[y]++;
    }
    int cate=0;
    for(auto it:mp)
        if(it.second)
            nrm[it.first]=++cate;
    for(int i=0;i<timp.size();i++)
    {
        mars[nrm[timp[i].first]]++;
        mars[nrm[timp[i].second]+1]--;
    }
    int mxm=0;
    for(int i=1;i<=cate;i++)
    {
        mars[i]+=mars[i-1];
        mxm = max(mxm, mars[i]);
    }
    cout<<mxm;
    return 0;
}
/**


a + (c-a)*t
b + (d-b)*t


a + (c-a)*t + b + (d-b)*t = r
t = (r-a-b)/(c+d-a-b)

a + (c-a)*t - b - (d-b)*t = r
t = (r-a+b)/(c+b-a-d)

-a - (c-a)*t + b + (d-b)*t = r
t = (r+a-b)/(a+d-c-b)

-a - (c-a)*t - b - (d-b)*t = r
t = (r+a+b)/(a+b-c-d)


*/
#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...