Pagini recente » Cod sursa (job #622195) | Cod sursa (job #2589678) | Cod sursa (job #61397) | Cod sursa (job #1263797) | Cod sursa (job #1920451)
#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;
}