Блог пользователя Konstantin.Zakharov

Автор Konstantin.Zakharov, 10 лет назад, По-русски

Здравствуй, codeforces! Вроде бы ничем не примечательный день обернулся чередой тяжелейших утрат и удивительнейших находок.

Во-первых, сегодня в 7 утра вместе с мои двадцатым годом (с днем меня!!) ушел из жизни таракан Квазимодо. Его светлой памяти я посвящаю все оставленные мной за последние несколько дней комментарии, принесшие в сумме где-то -100 вклада. Именно он еще вчера рассказывал мне со стены, в чем не правы все пользователи и как свергнуть мировое правительство. Вместе с ним уходит целая философия...

Во-вторых, мою общажную комнату решила покинуть так полюбившаяся всем крыса Василиса

Сколько я ни пытался уговорить ее остаться, она продолжала молча уходить от разговора

А потом просто протиснулась в другую комнату, и скорее всего
больше мы не увидимся, как это было с мышонком Аркадием...

Глава 2  
...

Меня предали те, на кого, я думал, могу положиться. Мою веру в дружбу втоптали в грязь. Меня обрекли на празднование дня рождения в одного. Но моя темная сторона рано праздновала победу, я понимаю, что они были всего лишь тараканом и крысой, а им не свойственно отвечать за свое завтра, или за то, что они делают сегодня...

...

Я снова вышел из комнаты, теперь уже навстречу новому дню, но т.к. на этот раз шел неспешно — заметил ранее упущенную картину. На полу валялись клочки волос, состриженные явно в спешке. Просыпающийся мозг напомнил, что вчера вечером здесь бегали наши этажные бывшие студенты и вроде как при них были ножницы.
"Это всего лишь безобидная шутка" — успокоил я себя.
"Хорошая попытка" — ответил разум.

Но я вспомнил про купленную вчера еду, эта мысль заставит встрепенуться любого загрустившего студента. Варка вареников не заняла много времени.

Сел к экрану с тарелкой, врубил скоростной модем.

Первые три проглотил не жуя, но то ли увидев -50 у своего комментария, то ли заметив странный вкус — заподозрил неладное.

Видимо, я прозевал надпись "Только сегодня, вареники с картошкой, землей и камушками (0.5%) + бонус, в каждом вы найдете остатки луковой кожуры". Есть известная история, как один мужик из Муромской области после такого завтрака решил призваться в армию, хотя ему было уже за 30. Но я все же предпочел просто спуститься в магазин и предъявить бракованный продукт. Мне сказали "спасибо, учтем, можете идти доедать".

Затравочка у 21 года выдалась что надо! А когда уже не знаешь, что и думать, добрые люди всегда подскажут

Глава 3 
...

Если я пойду и долиною смертной тени, не убоюсь зла. Это просто здорово звучит.

...

К счастью, те мои 20 лет были очень поучительны, они ушли не впустую. Само число 20 мало отличается, от, например, 19.836, но, даже не будучи приспешником фатальных дат и цифр, задумываться о прошедшем почему-то всегда начинаешь как раз на круглых датах. Подводить итоги сложно, но если все же пытаться — мне правда интересно, что будет дальше, и, как всегда, немного тревожно) То, что раньше мне для понимания приходилось разделять — сейчас частенько умещается в одну строку) Что же там впереди — кто его разберет?)

Mahno принес в честь праздника студенческий торт! Спасибо, чувак! Я буду есть, пока не возненавижу себя! :D

Полный текст и комментарии »

  • Проголосовать: нравится
  • -72
  • Проголосовать: не нравится

Автор Konstantin.Zakharov, 10 лет назад, По-русски

Здравствуйте. Сегодня я пробовал сдавать задачи без своей visual studio 2012, используя ideone.com. У меня не заработало Binary Search Tree, написанное на векторе. Точнее, оно выдавало неправильные ответы. После некоторого упрощения, тот же код стал давать ошибку исполнения.

После нескольких тщетных попыток понять в чем дело я скопировал код в студию, поставил несколько точек останова, начал отладку. Все верно. Убрал точки, запустил — а оно работает.

Поменял конфигурацию Debug на Release, запустил — ошибка исполнения.

Попробовал скомпилировать на MinGW 4.8.1 (tdm-2) — ошибка исполнения, независимо от наличия флага -O.

Cделал пример как можно меньше, но даже после этого результат прежний — signal 11 (SIGSEGV), обращение к не принадлежащей области памяти.

#include <vector>

namespace Ex {

  std::vector<int> next; // next[i] = index of next element. -1 if it's not exist

  int rec(int ind = 0) {
    if( ind == -1 ) {
      next.push_back(-1);
      return next.size() - 1;
    }
    next[ind] = rec(next[ind]);    
    return ind;
  }

}

int main() {

  Ex::next.push_back(-1);

  for(int i = 0; i < 20; i++)
    Ex::rec();

  // expected Ex::next states
  // -1
  // 1 -1
  // 1 2 -1
  // 1 2 3 -1
  // ...
  // 1 2 3 ... 20 -1

  return 0;
}

Я уже понял, что на ideone мне лучше не писать, но все-таки, может кто-то объяснит в чем дело, или все же на этот раз виновен компилятор?) Самому не очень верится, т.к. впервые вижу чтобы не работало на обоих.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

Автор Konstantin.Zakharov, 12 лет назад, По-русски

Может это и банально, но я ничего понять не могу. Для ввода начальных значений типа N использую функцию NextInt вида

int NextInt()
{
    int x;
    scanf("%d",&x);
    return x;
}

Да, пусть глупо, или еще как-то, но мне вот просто нравится грешить штучками типа

int N = NextInt(); vector<int> a; a.push_back(NextInt());

Ну так вот, загадка. На вводе четыре числа 1 2 3 4. Я пишу

cout << NextInt() << " " NextInt() << " " << NextInt() << " " NextInt() << endl;

И мне выводится 4 3 2 1 ???? Думаю что же это такое, пишу

printf("%d %d %d %d\n",NextInt(),NextInt(),NextInt(),NextInt());

и опять то же самое 4 3 2 1. Да блин. Промелькнула мысль о скором конце света, но потом все же решил что я вообще ничего не знаю, и функции вычисляются в каком-то неведомом порядке. Ну, думаю, проверим.

int sum(int a, int b)
{
    return a + b;
}
cout << sum(1,2) << " " << sum(3,4) << endl;
printf("%d %d\n",sum(5,6),sum(7,8));

И что? Да нет, все по старому.

3 7
11 15

MS VS 2012, спасайте)

Полный текст и комментарии »

Теги c++, wtf, vs
  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится