Pagini recente » Cod sursa (job #1216059) | Cod sursa (job #1883117) | Cod sursa (job #1665002) | Cod sursa (job #1884049) | Cod sursa (job #531849)
Cod sursa(job #531849)
#include <fstream.h>
#define mx(a,b) (a>b?a:b)
int N ,M ,i , D[1000000] , L[1000000] , aux , V[1000000] , ok , j, maxim;
int main()
{
ifstream f("orase.in");
ofstream g("orase.out");
f>>N>>M;
for(i=1;i<=N;i++){
f>>D[i];
f>>L[i];
}
for(i=1;i<N;i++){
for(j=i+1;j<=N;j++){
if(D[i]>D[j]){
aux=D[i];
D[i]=D[j];
D[j]=aux;
aux=L[i];
L[i]=L[j];
L[j]=aux;
}
}
}
// V[i] = suma maxima de la un aoras din spate pana la strada
V[1]=D[1];
for(i=2;i<=N;i++){
V[i] = D[i]-D[i-1] + mx(V[i-1],L[i-1]);
if (V[i] + L[i] > maxim)
maxim = V[i] + L[i];
/*
ok=0;
if(V[i-1]+D[i]-D[i-1]>=D[i]-D[i-1]+L[i-1]){
V[i]=V[i-1]+D[i]-D[i-1];
}
else{
V[i]=D[i]-D[i-1]+L[i-1];
ok=1;
}
if(V[i]+L[i]>max&&ok==1){
max=V[i];
}
*/
}
g<<maxim;
f.close();
g.close();
return 0;
}