I>>saba’in da biyar: 76 К>75
I>>đari shidda da sittin da shidda: 666 К>
I>>67: sitin da bakwai К>sittin...
I>>5605: hamsa da dari shidda da bigar К>...biyar
Здравствуйте, Iso12, Вы писали:
I>Здравствуйте, bazis1, Вы писали:
B>>Но какой великий смысл спрашивать это на интервью, мне неведомо. ИМХО, единственное, что можно таким способом выявить, это то, что человек перед собеседованием потратил неделю на кэширование в голове основных алгоритмов, которые еще через неделю забудет.
I>Мне тоже не совсем понятно зачем на интервью это спрашивать, может быть ишут человека для разработки в области ИИ. Чтобы понять может человек думать или нет есть и другие способы.
Это тест на сайте, для выдачи подарков. Может потом приглашают на интервью, я не в курсе
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Lepsik, Вы писали:
L>>Это тест на сайте, для выдачи подарков. Может потом приглашают на интервью, я не в курсе
E>А ссылку не дашь? E>Я тока такое нашёл: http://www.abbyy.ru/science/students/cup/
Я подумал, что это на их сайте, а не у хакера...
У хакера, кстати, написано, что это таки с собеседований
Но нет худа без бобра: я, благодаря этой путанице, нашёл у них конкурс задач...
Ну и у них, оказывается, есть дорешивание старых кубков.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Lepsik, Вы писали:
L>Задача 3
L>Даны числительные языка хауса:
L>đari bakwai da hamsin da shidda 756 L>sitta da đari bakwai da biyar 6705 L>saba’a da đari biyar da sittin 7560
L>A. Переведите с хауса: saba’in da biyar, đari shidda da sittin da shidda L>B. Запишите на хауса: 67 и 5605
75, 666?
sittin da hamsin, hamsin da đari shidda da biyar?
Здравствуйте, Erop, Вы писали: E>Ну и у них, оказывается, есть дорешивание старых кубков.
Ммм, забавно.
спойлер
Задача http://codeforces.com/contest/178/problem/A1 — там линейная комбинация, для каждого k получается вектор коэффициентов повторения (за сколько шагов единичку с позиции i можно выбросить в интервал позиций [k,n]), причём даже никакого динамического программирования не нужно, ибо последовательность шагов супервозрастающая.
Задачи A2 и A3 идентичны задаче A1. Побуквенно! В чём прикол?
Здравствуйте, Кодт, Вы писали:
К>Задачи A2 и A3 идентичны задаче A1. Побуквенно! В чём прикол?
Возможно там тестовые выборки разной сложности...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Lepsik, Вы писали:
L>3адача 1
L>Дан массив из целых чиcел. Найти такие m <= k, чтобы сумма a[m] + a[m + 1] + ... + a[k] была максимальна. Время работы должно быть порядка длины массива.
java:
public class Task1 {
public final int m, k;
private Task1(int m, int k) {
this.m = m;
this.k = k;
}
public static Task1 findIntervalWithMaxSum(int array[]) {
if (array.length < 1)
throw new IllegalArgumentException();
final Branch development = Branch.newAtStart(array);
final Branch releaseCandidate = Branch.newAt(development);
while (development.isPossibleToImprove()) {
development.tryToImprove();
if (development.isBetterThan(releaseCandidate)) {
releaseCandidate.setAt(development);
}
}
Task1 release = new Task1(releaseCandidate.m, releaseCandidate.k);
return release;
}
}
class Branch {
final int array[];
int m, k; //stateint sum; //computable
//------ Start Boilerplate ------private Branch(int[] array) {
this.array = array;
}
public static Branch newAtStart(int[] array) {
Branch n = new Branch(array);
n.m = 0;
n.k = 0;
n.sum = array[0];
return n;
}
public static Branch newAt(Branch other) {
Branch n = new Branch(other.array);
n.setAt(other);
return n;
}
public void setAt(Branch other) {
if (array != other.array)
throw new IllegalArgumentException();
m = other.m;
k = other.k;
sum = other.sum;
}
//------ End Boilerplate ------boolean isBetterThan(Branch other) {
return sum > other.sum;
}
public boolean isPossibleToImprove() {
return k + 1 < array.length;
}
public void tryToImprove() {
if (sum > 0) {
expandToNext();
} else {
startFromNext();
}
}
private void startFromNext() {
k++;
m = k;
sum = array[k];
}
private void expandToNext() {
k++;
sum += array[k];
}
}
Здравствуйте, vsb, Вы писали: B>>Чем плох наивный вариант бросить 7 раз по 5, и растащить 5 раз по 7?
vsb>Я ничего не понял, подробней можно? Что значит растащить 5 раз по 7? Лучше конкретным кодом или на примере. Выпало 1 2 3 4 5 4 3, дальше что будете делать?
Сложить , взять остаток от деления на 7 и прибавить 1?
Здравствуйте, deimos, Вы писали:
D>Здравствуйте, vsb, Вы писали: B>>>Чем плох наивный вариант бросить 7 раз по 5, и растащить 5 раз по 7?
vsb>>Я ничего не понял, подробней можно? Что значит растащить 5 раз по 7? Лучше конкретным кодом или на примере. Выпало 1 2 3 4 5 4 3, дальше что будете делать?
D>Сложить , взять остаток от деления на 7 и прибавить 1?
Если сложить 7 случайных чисел от 1 до 5, это уже не будет равномерным распределением. Чаще всего будет встречаться 21, остальные числа будут реже (20 и 22 чуть реже, 19 и 23 ещё реже и тд). После взятия остатка от деления на 7 там будет полная вакханалия.