- 1
function(&(*(--Iter)++);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
function(&(*(--Iter)++);
Вот как надо использовать итератор...
+154
#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-функция в одну строчку. плод больного воображения и лишнего времени
+154
// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
var result;
if (color && isArray(color) && color.length == 3)
return color;
if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
}
+154
//построение суффиксного массива
vector <int> getarr(string s)
{
//s - исходная строка
//суффиксный массив
vector <int> arr;
arr.resize(s.size());
//массив цветов
vector <int> col;
col.resize(s.size());
//массив для временных данных
vector <int> buf;
buf.resize(s.size());
//массив для карманов сортировки
vector <int> buck;
buck.resize(max(L, (int) s.size()));
//Шаг первый - начальная сортировка
//мы хотим отсортировать буквы строки
//посчитаем количество всех букв
for (int i = 0; i < (int) s.size(); i++)
buck[s[i]]++;
//преобразуем массив так, чтобы каждый элемент указывал на положение в массиве первой данной буквы
int sum = 0;
for (int i = 0; i < L; i++)
{
sum += buck[i];
buck[i] = sum - buck[i];
}
//теперь заполним массив arr: Теперь в нем суффиксы отсортированы по первой букве
for (int i = 0; i < (int) s.size(); i++)
arr[buck[s[i]]++] = i;
//теперь проставляем цвета: цвет увеличивается на 1 если следующая буква - другая
col[arr[0]] = 0;
for (int i = 1; i < (int) s.size(); i++)
col[arr[i]] = col[arr[i-1]] + (s[arr[i]] != s[arr[i-1]]);
int cn = col[arr[s.size() - 1]] + 1;
//Шаг второй - постепенное расширение подстрок
//в начале цикла отсортированы подстроки длины l, а в конце - длины 2l
for (int l = 1; l < (int) s.size(); l *= 2)
{
//обнуляем массив buck и заполняем для сортировки по col
for (int i = 0; i < (int) s.size(); i++)
buck[i] = 0;
for (int i = 0; i < (int) s.size(); i++)
buck[col[i]]++; sum = 0;
for (int i = 0; i < cn; i++)
sum += buck[i], buck[i] = sum - buck[i];
//строим новый массив в buf (не забываем сдвинуть указатель по модулю на l влево), затем копируем его в arr
for (int i = 0; i < (int) s.size(); i++)
buf[buck[col[(arr[i] - l + s.size()) % s.size()]]++]=(arr[i] - l + s.size()) % s.size();
arr = buf;
//теперь перекрашиваем массив col: заполняем массив buf, увеличиваем цвет на единицу если один из цветов отличается, затем копируем
buf[arr[0]] = 0;
for (int i = 1; i < (int) s.size(); i++)
buf[arr[i]] = buf[arr[i - 1]] + (col[arr[i]] != col[arr[i - 1]] || col[(arr[i] + l) % s.size()] != col[(arr[i - 1] + l) % s.size()]);
cn = buf[arr[s.size() - 1]] + 1;
col = buf;
}
//возвращаем результат
return arr;
}
Это просто жуть
+154
// create a new XML document
/*$doc = new DomDocument('1.0');
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
*/
//Ну вас всех нахрен!
echo('<?xml version="1.0" encoding="utf-8"?>');
echo("<root>");
echo("<tropical>$tropical</tropical>\n");
echo("<castle>$castle</castle>\n");
echo("<city>$city</city>\n");
echo("<forest>$forest</forest>\n");
echo("<architect>$architect</architect>\n");
echo("<rain>$rain</rain>\n");
echo("<ice>$ice</ice>\n");
echo("<lava>$lava</lava>\n");
echo("<space>$space</space>\n");
echo("<virtual>$virtual</virtual>\n");
echo("<money>$money</money>\n");
echo("</root>");
Я ОЧЕНЬ плохой PHP-кодер. Я не знаю, как делать в PHP XML (в .NET другой механизм, а этот я не очень понял), поэтому делаю "в лоб" - при помощи echo.
+154
function openSQLConnection($data)
{
$db_host = $data["host"];
$db_user = $data["login"];
$db_pass = $data["pass"];
$db_name = $data["db"];
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());
}
Суровый SQL-коннектор, взято из скриптов платежной системы nextpay[ru]
+154
<?php
require_once('MultiAutoload.php');
class Dispatcher {
private $handle;
function __construct($event_handle) {
$this->handle = $event_handle;
}
function handleEvent() {
$name = 'Handler_'.$this->handle;
if (class_exists($name)) {
$handler_obj = new $name($this->handle);
$response = $handler_obj->secureHandler();
return $response;
}
else {
throw new Exception('Event handling is impossible!');
}
}
}
?>
Немного экзотики: PHP в стиле Win32! Говно за собой не сразу увидел,
но когда "пришло озарение" было смешно.
+154
$src = fopen("0.txt", 'r');
while(!feof($src))
{
$line[] = fgets($src);
$line++;
}
Интересно чему в конце будет равно $line? :)
+154
http://vkontakte.ru/
<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>
http://vkontakte.ru/badbrowser.php
<script type="text/javascript">
<!--
//window.checkbrowser = true;
if (window.checkbrowser) {
try {
if (new XMLHttpRequest()) {
location.replace('/');
}
} catch(e) {
try {
if (new ActiveXObject('Msxml2.XMLHTTP')) {
location.replace('/');
}
} catch(e) {}
try {
if (new ActiveXObject('Microsoft.XMLHTTP')) {
location.replace('/');
}
} catch(e) {}
}
}
-->
</script>
Вот так суровые вконтактостроители отправляют на йуг пользователей NoScript.
+154
void CVC6_SampleCodeDlg::OnButtonSetpreset()
{
// TODO: Add your control notification handler code here
CComboBox *pCombobox = (CComboBox *) GetDlgItem(IDC_COMBO_PRESETNAME);
CString strPresetName;
GetDlgItem(IDC_EDIT_PRESETNAME)->GetWindowText(strPresetName);
if(strPresetName != "")
m_vportsdk.SavePresetPosition(strPresetName, (pCombobox->GetCurSel()+1));
else{
GetDlgItem(IDC_COMBO_PRESETNAME)->GetWindowText(strPresetName);
m_vportsdk.SavePresetPosition(strPresetName, (pCombobox->GetCurSel()+1));
}
}
VPort ActiveX SDK PLUS от Moxa
часть 4