- 1
$user = 'user'; // don't remove this variable, used in $$val
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+149
$user = 'user'; // don't remove this variable, used in $$val
+17
#include<iostream>
using namespace std;
int main(){
int n,a[100100],d[100100],ans=d[0]=1,i,j;
cin>>n>>a[0];
for(i = 1;i<n;++i)
for(j =i-1,cin>>a[i],d[i]=1;j>=0;--j)
if(a[i]>a[j]) ans = max(ans, d[i]=max(d[i],d[j]+1));
cout<<ans;
}
Решение задачи нахождения НВП (наибольшей возр. подпосл-ти)
+12
namespace predicate {
using ...;
typedef boost::function<bool (const object &obj)> bool_func;
typedef boost::function<int (const object &obj)> int_func;
// ... скучные реализации операторов ...
template <class I, class S> struct predicate_grammar :
qi::grammar<I, bool_func(), S>
{
predicate_grammar() : predicate_grammar::base_type(bool_expr)
{
identifier = char_("a-z") >> *(char_("a-z_0-9"));
bool_prop = identifier [ _val = bind(&make_bool_prop_reader, _1, _pass) ];
bool_expr = (bool_expr2 >> "||" >> bool_expr) [ _val = bind(&make_logic_op, &op_or, _1, _2) ]
| bool_expr2 [ _val = _1 ];
bool_expr2 = (bool_expr3 >> "&&" >> bool_expr2) [ _val = bind(&make_logic_op, &op_and, _1, _2) ]
| bool_expr3 [ _val = _1 ];
bool_expr3 = ('(' >> bool_expr >> ')') [ _val = _1 ]
| ('!' >> bool_expr3) [ _val = bind(&make_not, _1) ]
| int_comp [ _val = _1 ]
| bool_prop [ _val = _1];
int_comp = (int_expr >> "<" >> int_expr) [ _val = bind(&make_cmp_op, &op_less, _1, _2) ]
| (int_expr >> "<=" >> int_expr) [ _val = bind(&make_cmp_op, &op_less_eq, _1, _2) ]
| (int_expr >> ">" >> int_expr) [ _val = bind(&make_cmp_op, &op_greater, _1, _2) ]
| (int_expr >> ">=" >> int_expr) [ _val = bind(&make_cmp_op, &op_greater_eq, _1, _2) ]
| (int_expr >> "==" >> int_expr) [ _val = bind(&make_cmp_op, &op_eq, _1, _2) ]
| (int_expr >> "!=" >> int_expr) [ _val = bind(&make_cmp_op, &op_not_eq, _1, _2) ];
int_expr = int_prop [ _val = _1 ]
| int_const [ _val = bind(&make_int_const, _1) ];
int_const = int_ [ _val = _1 ];
int_prop = identifier [ _val = bind(&make_int_prop_reader, _1, _pass) ];
}
qi::rule<I, std::string(), S> identifier;
qi::rule<I, int(), S> int_const;
qi::rule<I, int_func(), S> int_expr, int_prop;
qi::rule<I, bool_func(), S> bool_expr, bool_expr2, bool_expr3, int_comp, bool_prop;
};
boost::function<bool (const object &)> parse(const std::string &src) {
if (src.empty())
return make_bool_const(true);
bool_func p;
std::string::const_iterator b = src.begin(), e = src.end();
predicate_grammar<std::string::const_iterator, boost::spirit::ascii::space_type> grammar;
if (!phrase_parse(b, e, grammar, boost::spirit::ascii::space, p) || b != e) {
std::stringstream s;
s << "Predicate parsing failed at " << (b - src.begin()) << " in \"" << src << "\"";
throw std::runtime_error(s.str());
}
return p;
}
Обещанный в http://govnokod.ru/12936#comment175980 говнокодец с использованием бусто-духа.
+18
class Mutex
{
HANDLE m_Mutex;
public:
Mutex()
{
m_Mutex = CreateMutex(0, false, 0);
}
~Mutex()
{
ReleaseMutex(m_Mutex);
CloseHandle(m_Mutex);
}
void Lock()
{
auto lv_WaitResult = WaitForSingleObject(m_Mutex, 10000);
assert(lv_WaitResult != WAIT_TIMEOUT);
}
void Unlock()
{
ReleaseMutex(m_Mutex);
}
};
template<int C>
struct GLocker
{
static Mutex m_Mutex;
};
template<int C> Mutex GLocker<C>::m_Mutex;
class Locker
{
Mutex *m_Mutex;
public:
Locker(Mutex &_Mutex)
{
m_Mutex = &_Mutex;
m_Mutex->Lock();
}
virtual ~Locker()
{
m_Mutex->Unlock();
}
};
class ThreadCreator
{
protected:
static void NewThread(void *_Func)
{
(*(std::function<void()>*)_Func)();
delete (std::function<void()>*)_Func;
}
public:
static ThreadCreator g_ThreadCreator;
HANDLE operator=(const std::function<void()> &_Func)
{
std::function<void()> *lv_Func = new std::function<void()>(_Func);
return (HANDLE)_beginthread(ThreadCreator::NewThread,0,(void*)lv_Func);
}
};
ThreadCreator ThreadCreator::g_ThreadCreator;
#define LOCK const Locker _Lock##__LINE__##__COUNTER__ = GLocker<9000 + __COUNTER__>::m_Mutex // 9000 является запасом для пользовательских номеров.
#define LOCK_EX(Port) const Locker _Lock##__LINE__##__COUNTER__ = GLocker<Port>::m_Mutex // блокирует определённый мьютекс, полезно когда нужно делать синхронизацию из разных мест.
#define GO_FUNC ThreadCreator::g_ThreadCreator =
#define GO_EX(...) GO_FUNC [__VA_ARGS__]() mutable -> void
#define GO GO_FUNC []() -> void
Подсказка сайта:
http://www.gamedev.ru/code/tip/tread_creation
+148
while(true){
$it = $this->item_by_id($i++);
if($it != null){
$nItems[] = $it;
}
if(count($nItems) >= 5){
break;
}
}
−121
Функция ТекстЗапросаИзСтрокиВЧисло(пИмяПоля, пДлинаСтроки, пСимволРазделителя=".")
лТекст="ВЫБОР ";
Для лДлинаЦелойЧасти=0 По пДлинаСтроки Цикл
Если лДлинаЦелойЧасти=пДлинаСтроки Тогда
лТекст=лТекст+"ИНАЧЕ"+Символы.ПС;
Иначе
лТекст=лТекст+"КОГДА ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""+пСимволРазделителя+""" ИЛИ ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""" ТОГДА "+Символы.ПС;
КонецЕсли;
Если лДлинаЦелойЧасти=0 Тогда лТекст=лТекст+" 0"+Символы.ПС; КонецЕсли;
Для лИнд=1 По лДлинаЦелойЧасти Цикл
лТекст=лТекст+" ВЫБОР "+Символы.ПС;
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "*"+Формат(Pow(10, лДлинаЦелойЧасти-лИнд), "ЧРД=.; ЧГ=0")+"+")+Символы.ПС;
КонецЦикла;
Для лИнд=лДлинаЦелойЧасти+2 По пДлинаСтроки Цикл
лТекст=лТекст+"+ ВЫБОР";
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "/"+Формат(Pow(10, лИнд-лДлинаЦелойЧасти-1), "ЧРД=.; ЧГ=0"))+Символы.ПС;
КонецЦикла;
КонецЦикла;
лТекст=лТекст+"КОНЕЦ";
Возврат лТекст;
КонецФункции
+170
if (window.IsLocking !== [].xxx)
Проверка на undefined
−105
[NSTimer scheduledTimerWithTimeInterval:[[NSDate distantFuture] timeIntervalSinceNow]
target:self selector:@selector(dummyTimer:) userInfo:self repeats:YES];
Еще один занятный персонаж. Особенно порадовало "repeats:YES"
+138
public bool ParsеOboznString(string obozn)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU"); // Установка русской культуры
try
{
Regex reg = new Regex(@"(\D*)(\d*)([^\+]*)[\+]?(\d+[,]\d+)*"); // регулярное выражение
Match m = reg.Match(obozn); // разбор строки обозначения
....
....
....
}
catch
{
return false;
}
return true;
}
"культурный" код и "содержательные" комментарии
+72
Double extractShare(Product product, ShareExtractor extractor) {
if (product != null) {
Equity equity = product.getEquity();
if (equity != null) {
Double shareMetric = extractor.extract(equity);
if (shareMetric != null) {
return shareMetric;
}
}
}
return 0.0;
}
private interface ShareExtractor {
ShareMetricExtractor PUBLIC_SHARE_OUTST_EXTRACTOR = new ShareExtractor() {
@Override
public Double extract(Equity equity) {
return equity.getPublicShareOutst();
}
};
ShareMetricExtractor SHARE_OUTST_EXTRACTOR = new ShareExtractor() {
@Override
public Double extract(Equity equity) {
return equity.getShareOutst();
}
};
Double extract(Equity equity);
Архитектор головного мозга - это диагноз. Фанатзия нашего системного архитектора толи зашкалила, то ли дала сбой. Сей фердопердозный код был заменен следующим же коммитом, но свн помнит все! )