Cod sursa(job #1920451)

Utilizator alex99Chelba Alexandru alex99 Data 10 martie 2017 00:50:27
Problema Stalpi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("stalpi.in");
ofstream g("stalpi.out");
int n,ind, cost,last,ladr;
struct stalpi
{
    int indice, cost, extst, extdr;
};
stalpi stalp[100001];
bool cmp(stalpi const &lhs, stalpi const &rhs)
{
    return lhs.indice<rhs.indice;
}
vector<int> v[100001];
set<int> d;
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>ind>>cost>>last>>ladr;
        stalp[i].indice=ind;
        stalp[i].cost=cost;
        if(ind-last<0) stalp[i].extst=0; else stalp[i].extst=ind-last;
        stalp[i].extdr=ind+ladr;
    }
    sort(stalp+1,stalp+n+1, cmp);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        if(stalp[i].indice>=stalp[j].extst&&stalp[i].indice<=stalp[j].extdr)
        {
            v[i].push_back(stalp[j].cost);
        }
    }
    for(int i=1;i<=n;i++)
    {
        vector<int>::iterator it;
        it=min_element(v[i].begin(),v[i].end());
        d.insert(*it);
    }
    set<int>::iterator i;
    int s=0;
    for(i=d.begin();i!=d.end();i++)
        s+=*i;
    g<<s<<'\n';
    return 0;
}