- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
list<int> l;
//...
for(int i=0;i<l.size();++i)
{
auto it=l.begin();
advance(it, i);
int item=*it;
//...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+997
list<int> l;
//...
for(int i=0;i<l.size();++i)
{
auto it=l.begin();
advance(it, i);
int item=*it;
//...
+162
template <
typename PropertyOwner // Класс владельца
>
class properties {
public:
// Получить указатель на владельца по указателю на свойство
static PropertyOwner * owner( void * property ) {
int aai = (int)&(((PropertyOwner*)0)->__properties);
return (PropertyOwner *)((char*)property - aai);
}
};
/**
* Шаблон класса свойства
*/
template <
typename PropertyOwner, // Класс владельца
typename PropertyType, // Тип свойства
PropertyType (PropertyOwner::*getter)(), // Геттер
void (PropertyOwner::*setter)(PropertyType) > // Сеттер
class property {
public:
/**
* Чтение свойства - вызов геттера
*/
operator PropertyType() {
return (properties<PropertyOwner>::owner( this )->*getter)();
}
/**
* Запись в свойство - вызов сеттера
*/
void operator = ( const PropertyType & value ) {
(properties<PropertyOwner>::owner( this )->*setter)( value );
}
};
// Макросы для удобного определения свойств /////////
/**
* Начать объявления свойств в классе cls
*/
#define properties_start(cls) union { properties<cls> __properties;
/**
* Закончить объявление свойств в классе cls
*/
#define properties_end() };
/**
* Объявить свойство в классе cls типа type c геттером getter и сеттером setter
*/
#define property(cls,type,getter,setter) property<cls,type,&cls::getter,&cls::setter>
http://www.codenet.ru/progr/cpp/cpp-properties.php
+1003
#include <iostream>
#include <math.h>
using namespace std;
long long h[104680];
int main(){
int wr,a2,a3,a5,a7,a11,a13,a17,a19,a23,a29,a31,a37,i,t;
long long p,u,f1,c1,e,k,n,g,c,f,b2,b3,b5,b7,b11,b13,b17,b19,b23,b29,b31,b37,j;
for (i=1;i<=104000;i++)h[i]=1000000000000000011;
for (a2=0;a2<=8;a2++){
b2=powf(2,a2);
for (a3=0;a3<=4;a3++){
if (a2<a3)break;
b3=b2*powf(3,a3);
for (a5=0;a5<=3;a5++){
if (a2<a5)break;
b5=b3*powf(5,a5);
for (a7=0;a7<=2;a7++){
if (a2<a7)break;
b7=b5*powf(7,a7);
for (a11=0;a11<=1;a11++){
if (a2<a11)break;
b11=b7*powf(11,a11);
for (a13=0;a13<=1;a13++){
if (a2<a13)break;
b13=b11*powf(13,a13);
for (a17=0;a17<=1;a17++){
if (a2<a17)break;
b17=b13*powf(17,a17);
for (a19=0;a19<=1;a19++){
if (a2<a19)break;
b19=b17*powf(19,a19);
for (a23=0;a23<=1;a23++){
if (a2<a23)break;
b23=b19*powf(23,a23);
for (a29=0;a29<=1;a29++){
if (a2<a29)break;
b29=b23*powf(29,a29);
for (a31=0;a31<=1;a31++){
if (a2<a31)break;
b31=b29*powf(31,a31);
for (a37=0;a37<=1;a37++){
k=b31*powf(37,a37);
g=(a2+1)*(a3+1)*(a5+1)*(a7+1)*(a11+1)*(a13+1);
g=g*(a17+1)*(a19+1)*(a23+1)*(a29+1)*(a31+1)*(a37+1);
if (g<=103680){
if ((0<k)&&(k<h[g])){
h[g]=k;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
cin >> t;
for (i=1;i<=t;i++){
cin >> n;
f1=0;c1=0;
for (j=1;j<=103680;j++){
if (h[j]<=n){
f1=h[j];
c1=j;
}
}
cout << f1 << " " << c1 << endl;
}
cin >> i;
return 0;
}
отсюда: http://acm.timus.ru/forum/thread.aspx?id=26703&upd=634473973997426 601
типа решение одной олимпиадной задачки на теорию чисел
типа неверное (что неудивительно)
по ссылке можно увидеть другое не менее монструозное решение, которое проходит чуть больше тестов...
+1005
memsize =
strlen("cpy_dta.sh ");
if ( memsize >= 4096 ) {
sprintf( errMsg, "[%s] - ExecScript string too long", func);
return -7;
}
sprintf( args, "cpy_dta.sh " );
if ( 0 != ( rc = ::system ( args ) ) )
{
// ...
}
просто фейспалм.
+1007
template <typename T, typename U>
auto operator()(T&& t, U&& u) const
-> decltype(forward<T>(t) + forward<U>(u)) {
return forward<T>(t) + forward<U>(u);
}
+1000
#include <iostream>
#include <stdio.h>
#include <fcntl.h>
#include <string>
#define print(data) cout<<data<<endl;
#define ord(data) int(data[0])
#define str(data) char(data)
#define open fopen
#define write(f, data) fputc(data, f)
using namespace std;
string input()
{
string s;
cin>>s;
return s;
};
FILE* f;
int chr;
int main() {
print("Enter:");
f = open("code.txt", "w");
chr = ord(input());
print(chr);
write(f, str(chr));
return 0;
}
Вот такую лабу сдал студент 1го курса в нашем вузе. Сказал преподавателю, что ему очень нравится питон и он старается ему подражать.
http://ideone.com/ctkFP
+1007
void Image::CombineNoise(byte combineType, byte noiseType, cCol3D& maxcolor, Image* mask)
{
byte *maskBf=0;
if(mask)
{
uint mask_pixels=mask->Width*mask->Height;
maskBf=(byte*)malloc(mask_pixels);
if(mask->Format!=ImageFormat_Luminance)
for(uint i=0, ic=0; i<mask_pixels; i++, ic+=mask->Components)
maskBf[i]=min((byte)255)((byte)(mask->Data[ic]*0.3f+mask->Data[ic+1]*0.59f+mask->Data[ic+2]*0.11f));
else memcpy(maskBf, mask->Data, mask_pixels);
if(mask->Width!=Width || mask->Height!=Height)
{
byte* maskBf2=ScaleImage(Width, Height, maskBf, mask->Width, mask->Height, 1);
free(maskBf);
maskBf=maskBf2;
}
}
uint pixels=Width*Height;
uint size=pixels*Components;
if(Data && Width>0 && Height>0)
{
if(noiseType==0 && Format!=ImageFormat_Luminance) //Цветной шум
{
switch(combineType)
{
case 0: //Модуляция
if(mask)
for(uint i=0, ic=0; ic<size; i++, ic+=Components)
{
if(maskBf[i]<=127) continue;
Data[ic]=min<byte>(Data[ic]*(rand()%maxcolor.r)/255)(255);
if(Components<2) continue;
Data[ic+1]=min<byte>(Data[ic+1]*(rand()%maxcolor.g)/255)(255);
if(Components<3) continue;
Data[ic+2]=min<byte>(Data[ic+2]*(rand()%maxcolor.b)/255)(255);
}
else
for(uint ic=0; ic<size; ic+=Components)
{
Data[ic]=min<byte>(Data[ic]*(rand()%maxcolor.r)/255)(255);
if(Components<2) continue;
Data[ic+1]=min<byte>(Data[ic+1]*(rand()%maxcolor.g)/255)(255);
if(Components<3) continue;
Data[ic+2]=min<byte>(Data[ic+2]*(rand()%maxcolor.b)/255)(255);
}
break;
case 1: //Сложение
if(mask)
for(uint i=0, ic=0; ic<size; i++, ic+=Components)
{
float factor=maskBf[i]/255.0f;
Data[ic]=(byte)min(Data[ic]+(rand()%maxcolor.r*factor))(255);
if(Components<2) continue;
Data[ic+1]=(byte)min(Data[ic+1]+(rand()%maxcolor.g*factor))(255);
if(Components<3) continue;
Data[ic+2]=(byte)min(Data[ic+2]+(rand()%maxcolor.b*factor))(255);
}
else
for(uint ic=0; ic<size; ic+=Components)
{
Data[ic]=min<byte>(Data[ic]+(maxcolor.r>0? rand()%maxcolor.r: 0))(255);
Data[ic+1]=min<byte>(Data[ic+1]+(maxcolor.g>0? rand()%maxcolor.g: 0))(255);
Data[ic+2]=min<byte>(Data[ic+2]+(maxcolor.b>0? rand()%maxcolor.b: 0))(255);
}
break;
case 2: //Вычитание
if(mask)
for(uint i=0, ic=0; ic<size; i++, ic+=Components)
{
float factor=maskBf[i]/255.0f;
Data[ic]=(byte)max(Data[ic]-(rand()%maxcolor.r*factor))(0);
if(Components<2) continue;
Data[ic+1]=(byte)max(Data[i+1]-(rand()%maxcolor.g*factor))(0);
if(Components<3) continue;
Data[ic+2]=(byte)max(Data[i+2]-(rand()%maxcolor.b*factor))(0);
}
else
for(uint ic=0; ic<size; ic+=Components)
{
Data[ic]=max<byte>(Data[ic]-rand()%maxcolor.r)(0);
if(Components<2) continue;
Data[ic+1]=max<byte>(Data[ic+1]-rand()%maxcolor.g)(0);
if(Components<3) continue;
Data[ic+2]=max<byte>(Data[ic+2]-rand()%maxcolor.b)(0);
}
break;
case 3: //Средний цвет
//На говнокод не лезет больше. Такая гигантская функция.
Одна из функций для генерации изображений. Решил не рефакторить, потому что всё равно всё буду переделывать.
+168
void __fastcall TForm1::ShowBits(unsigned char data)
{
if(data&0x1)ImBit0->Canvas->Brush->Color=0x0000FF00;
else ImBit0->Canvas->Brush->Color=clRed;
ImBit0->Canvas->FillRect(TRect(0,0,ImBit0->Width,ImBit0->Height));
if(data&0x2)ImBit1->Canvas->Brush->Color=0x0000FF00;
else ImBit1->Canvas->Brush->Color=clRed;
ImBit1->Canvas->FillRect(TRect(0,0,ImBit1->Width,ImBit1->Height));
if(data&0x4)ImBit2->Canvas->Brush->Color=0x0000FF00;
else ImBit2->Canvas->Brush->Color=clRed;
ImBit2->Canvas->FillRect(TRect(0,0,ImBit2->Width,ImBit2->Height));
if(data&0x8)ImBit3->Canvas->Brush->Color=0x0000FF00;
else ImBit3->Canvas->Brush->Color=clRed;
ImBit3->Canvas->FillRect(TRect(0,0,ImBit3->Width,ImBit3->Height));
if(data&0x10)ImBit4->Canvas->Brush->Color=0x0000FF00;
else ImBit4->Canvas->Brush->Color=clRed;
ImBit4->Canvas->FillRect(TRect(0,0,ImBit4->Width,ImBit4->Height));
if(data&0x20)ImBit5->Canvas->Brush->Color=0x0000FF00;
else ImBit5->Canvas->Brush->Color=clRed;
ImBit5->Canvas->FillRect(TRect(0,0,ImBit5->Width,ImBit5->Height));
if(data&0x40)ImBit6->Canvas->Brush->Color=0x0000FF00;
else ImBit6->Canvas->Brush->Color=clRed;
ImBit6->Canvas->FillRect(TRect(0,0,ImBit6->Width,ImBit6->Height));
if(data&0x80)ImBit7->Canvas->Brush->Color=0x0000FF00;
else ImBit7->Canvas->Brush->Color=clRed;
ImBit7->Canvas->FillRect(TRect(0,0,ImBit7->Width,ImBit7->Height));
}
Отображение состояния битов байта
+147
if (!cpMenu->IsSelected())
{
std::vector<UINT> menus;
menus.push_back(_menuIndex.Value);
if (!_SelectMenu(cpTarget, _instanceID.HasValue ? _instanceID.Value : -1, &menus[0], (UINT)menus.size(), SelectionType::Exclusive))
return CPNGObject();
}
Не смог обойтись без вектора...
+148
#include <iostream>
#include <Windows.h>
int main()
{
unsigned char data[]={0xb8, 0x9a, 0x02, 0x00, 0x00, 0xc3};
auto function=(int(*)())VirtualAlloc(nullptr, sizeof(data), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(function, data, sizeof(data));
std::cout << function();
VirtualFree(function, 0, MEM_RELEASE);
return 0;
}
Угадайте, что выведет эта программа?