ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1117. Иерархия

Показать все сообщения Спрятать все сообщения

Brute-force - 0.046 AC! Cat36 7 ноя 2008 12:16
int dist(unsigned int i, unsigned int j){
int k =0;
if(i==j)  return 0;

if(i%2){
  ++k;
  if(i%4==1) ++i ;else --i;
 };
if(j%2){
  ++k;
  if(j%4==1) ++j ;else --j;
};
return k + dist(i/2,j/2);
};

__int64 from1(unsigned int l){
 int j =l/1000000;
 __int64 sum = save[j];
 unsigned int start = (j==0)?1:1000000*j;
for(unsigned int i = start; i<l; ++i) sum+=dist(i,i+1) -1;
return sum;
};

int main(){
unsigned int a,b;
cin>>a>>b;
if(a>b) swap(a,b);
cout<<from1(b) - from1(a);
};



Edited by author 07.11.2008 12:16

Edited by author 07.11.2008 12:16

Edited by author 07.11.2008 12:35