Кресты / Говнокод #5810 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
#include <fstream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    fstream in("z.in", ios::in);
    fstream out("z.out", ios::out);

    string s;
    in >> s;

    in.close();

    vector<size_t> z(s.length());
    z[0] = s.length();
    for (size_t i = 1, l = 0, r = 0, j = 0, k = 0; i < s.length(); (i > r) ? ((s[i + j] == s[j]) && ((j + i) < s.length()) ? ++j : (((z[l = i] = j, r = i + j - 1), j = 0), ++i)) : ((z[i - l] < r - i + 1) ? ((z[i] = z[i - l]), ++i) : (((s[r + k] == s[r - i + k]) && ((k + r) < s.length())) ? ++k : (((z[l = i] = r - i + k, r = r + k - 1), k = 1), ++i))));

    for(size_t i = 1; i < s.length(); ++i)
    {
        out << z[i] << " ";
    }

    out << flush;
    out.close();

    return 0;
}

Z-функция в одну строчку. плод больного воображения и лишнего времени

Запостил: finomen812 finomen812, (Updated )

Комментарии (7) RSS

    • как ни форматируй вложенные тернарные операторы еще и с использованием запятых, адекватный код не родить
      Ответить
        • >вложенные тернарные операторы
          Так говоришь, будто это плохо.

          3689
          Ответить
          • плохо все то, что ухудшает читаемость кода. в случае тернарно оператора - обилие однотипных вопросиков, двоеточий, и скобочек
            Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8