Pagini recente » Cod sursa (job #227974) | Cod sursa (job #1330551) | Cod sursa (job #2741719) | Monitorul de evaluare | Cod sursa (job #157536)
Cod sursa(job #157536)
#include<fstream.h>
unsigned long*a,*d;
long n,x,l,s;
int aranjeaza_pivot(int i, int j)
{int piv=a[i];
while(i<j)
{if (a[i]<a[j]){int aux=a[i];
a[i]=a[j];
a[j]=aux;
d[i]^=d[j]^=d[i]^=d[j];
}
if(a[i]==piv) j--;
else i++;}
return i;}
void quick_sort(int i, int j)
{if(i<j)
{int k=aranjeaza_pivot(i,j);
quick_sort(i,k-1);
quick_sort(k+1,j);}
}
long oaie_selectata()
{long i;
for(i=1; i<=n; i++)
if(x>=d[i]&&x<d[i]+l&&a[i]!=0) { s=s+a[i];
a[i]=0;
return i;}
for(i=1; i<=n; i++)
if(a[i]!=0&&x>=d[i]){s=s+a[i];
a[i]=0;
return i;}
return 0;}
void mutare(long i)
{for(long j=1; j<=n; j++)
if(a[j]!=0) d[j]=d[j]+l;}
void main()
{int i;
a=new unsigned long[100000];
d=new unsigned long[100000];
if(a==0 || d==0) cout<<"alocare esuata";
ifstream f("lupu.in");
f>>n>>x>>l;
for(i=1; i<=n; i++)
{f>>d[i];
f>>a[i];}
quick_sort(1,n);
for(i=1; i<=n; i++)
{cout<<d[i]<<' '<<a[i];
cout<<endl;}
i=oaie_selectata();
while(i!=0)
{mutare(i);
i=oaie_selectata();}
cout<<s;
}