Pagini recente » Cod sursa (job #3245184) | Cod sursa (job #679313) | Cod sursa (job #1390315) | Cod sursa (job #400224) | Cod sursa (job #1250270)
#include <iostream>
#include<fstream>
using namespace std;
int n,k,p;
void citire()
{
ifstream fin("proc.in");
fin>>n>>k>>p;
fin.close();
}
int verif(long long timp)
{
long long nrprocese=0,proctimp1=0;
int i;
for(i=1;i<=p;i++)
{
nrprocese+=(timp/i)/2;
proctimp1+=(timp/i) % 2;
}
int proc=n-k;
if(nrprocese >= proc && (nrprocese-proc)*2+proctimp1 >= k) return 1;
else return 0;
}
long long cautareTimp(long long st, long long dr)
{
long long mij,rasp=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(verif(mij))
{
dr=mij-1;
rasp=mij;
}
else st=mij+1;
}
return rasp;
}
void afisare()
{
long long Tmin;
long long maxim=1LL*k*p + 1LL*(n-k)*p*2;
Tmin=cautareTimp(1, maxim);
ofstream fout("proc.out");
fout<<Tmin<<"\n";
fout.close();
}
int main()
{
citire();
afisare();
return 0;
}