Pagini recente » Cod sursa (job #1339252) | preoji2012 | Cod sursa (job #1891137) | Cod sursa (job #936439) | Cod sursa (job #2320841)
#include <fstream>
using namespace std;
ifstream fin( "branza.in" );
ofstream fout( "branza.out" );
const int N = 100000;
int dq[ N ], c[ N ];
long long nr[ N ];
int main()
{
int n = 0, s = 0, t = 0, st = 0, dr = -1, x = 0;
long long suma = 0;
fin >> n >> s >> t;
for( int i = 0; i < n; ++i )
{
fin >> c[ i ] >> nr[ i ];
}
for( int i = 0; i < n; ++i )
{
if( st <= dr && dq[ st ] == i - t )
{
++st;
}
while( st <= dr && c[ i ] <= c[ dq [ dr ] ] + ( i - dq[ dr ] ) * s )
--dr;
dq[ ++dr ] = i;
suma += (c[ dq[ st ] ] + ( i -dq[ st ] ) * s) * nr[i];
}
fout << suma;
return 0;
}