Метод деления пополам (дихотомия)
 | Королев Дмитрий Николаевич — преподаватель информатики, лицей №1151 при МИФИ . |
Полный текст статьи опубликован в интернет-журнале "Потенциал" по адресу http://ru.wikibooks.org/wiki/Метод_дихотомии
Решение задачи 071 — "Провода"
Программа 2. "Провода"
#include < iostream >
using namespace std;
int N,K,X[10001];
bool check(int L)
{
int i, total = 0;
for(i = 0; i < N; i++)
{
total +=X[i]/L;
if(total >= K)
return true;
}
return false;
}
Int main()
{
cin » N » K;
long i,a,b;
for(i = 0; i < N; I++)
cin » X[i] ;
a = 1;
b = 20000000;
while(b > a+1)
{
int с = (a+b)/2;
if(check(c))
a = c;
else
b = c;
}
cout << a;
return 0;
}
© Журнал "Потенциал", 2005-2012. Все права защищены. Воспроизведение материалов сайта и журнала "Потенциал" в любом виде, полностью или частично, допускается только с письменного разрешения редакции. Отзывы и пожелания шлите почтой. Подготовка к ЕГЭ
ЕГЭ по математике
login
|