Cod sursa(job #2086105)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 11 decembrie 2017 14:25:22
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
int m, n, maxi;
struct dimi1{
    int x, y;
}v[50002];
struct dimi2{
    int xx, yy, poz;
}vv[50002];
inline bool cmp(const dimi1 a, const dimi1 b)
{
    if(a.x==b.x)
        return a.y<b.y;
    return a.x<b.x;
}inline bool cmp1(const dimi2 a, const dimi2 b)
{
    return a.xx+a.yy<b.xx+b.yy;
}
int main()
{
    int i;
    fin>>m>>n;
    for(i=1; i<=n; i++)
        fin>>v[i].x>>v[i].y;
    sort(v+1,v+n+1,cmp);
    for(i=1; i<=n; i++)
        vv[i].xx=v[i].x, vv[i].yy=v[i].y, vv[i].poz=i;
    sort(vv+1,vv+n+1,cmp1);
    for(i=1; i<=n-1; i++)
        {
            if(v[i].x==v[n].x && v[vv[n].poz].y==v[vv[n].poz].y)
            maxi=max(maxi,(-1)*v[i].x+v[i].y+v[vv[n-1].poz].x+v[vv[n-1].poz].y);
            else maxi=max(maxi,(-1)*v[i].x+v[i].y+v[vv[n].poz].x+v[vv[n].poz].y);
        }
    fout<<maxi<<'\n';
    return 0;
}