Pagini recente » Cod sursa (job #376397) | Cod sursa (job #3239306) | Cod sursa (job #1694281) | Cod sursa (job #558464) | Cod sursa (job #883753)
Cod sursa(job #883753)
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
int unu, doi, p, n, sol, li, ls, mid;
bool ok(int t)
{
int i, s;
float n1, n2;
n1 = n2 = 0;
for(i=1; i<=p; i++)
{
s = t/i;
n2 = n2+(s/2);
n1 = n1+(s%2);
}
return ((n2>=doi) && ((n1+2.0*(n2-doi))>=unu));
}
int main()
{
ifstream fin("proc.in");
ofstream fout("proc.out");
//Read
fin>>n>>unu>>p;
doi = n-unu;
//Compute
li = 0; ls = 2*n;
sol = ls;
while(li <= ls)
{
mid = (li+ls)/2;
if(ok(mid))
{
sol = mid;
ls = mid-1;
}
else
li = mid+1;
}
//Print
fout<<sol;
//cout<<sol;
}