- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
struct _elem
{
int x, y, z, num;
bool r;
long long square;
void read(int i)
{
cin >> x >> y >> z;
num = i;
square = 0;
}
friend bool operator<(_elem a, _elem b)
{
if ( a.z == b.z)
{
return a.r == true;
}
else
{
return a.z < b.z;
}
}
};
_elem mas[500000];
bool vis[500000];
int main()
{
int N, W, L;
cin >> N >> W >> L;
for ( int i = 0; i < N; i++)
{
mas[i].read(i);
mas[i].r = false;
mas[i + N].read(i);
mas[i + N].r = true;
mas[i].square = mas[i + N].square = abs(mas[i].x - mas[i + N].x) * abs(mas[i].y - mas[i + N].y);
vis[i] = vis[i + N] = false;
}
sort(mas, mas + 2 * N);
long long square = 0;
int count = 0;
int min = -1;
for ( int i = 0; i < 2 * N; i++)
{
if ( mas[i].r == false)
{
square += mas[i].square;
count++;
}
else
{
square -= mas[i].square;
count--;
}
if ( square == W * L)
{
if (min == -1 || count < min)
{
min = count;
}
}
}
if ( min == -1)
{
cout << "NO" << endl;
}
else
{
cout << "YES" << endl;
count = 0;
square = 0;
int i = 0;
while (count != min || square != W * L)
{
if ( mas[i].r == false)
{
square += mas[i].square;
count++;
vis[mas[i].num] = true;
}
else
{
square -= mas[i].square;
count--;
vis[mas[i].num] = false;
}
i++;
}
cout << min << endl;
}
}
}
ch 28.08.2010 12:19 # 0
Dummy00001 28.08.2010 12:53 # −3
для лабы все очень даже прилично написано. кто-то даже догадался ввод редиректом из файла зачитывать.
absolut 28.08.2010 13:06 # +1
Строки 17,26,27,50,81 ... это если не углубляться в суть.
Dummy00001 28.08.2010 14:50 # +1
№26, 27: стандартная математическая нотация. ну если какие мат статьи читал, то там народ всегда для простоты и наглядности пользуется массивами.
№50, 81. таже самая наглядность и читабельность.
те массивы в строках 26/27 были бы говном, если бы это был продакшн код - а не открыто реализация алгоритма для исследовательской статьи.
и имена переменных - ну реально из какой-то публикации алгоритма.
bugmenot 28.08.2010 15:58 # +2
26,27 - нормально, по условию задачи (хотя константу надо бы)
50,81 - почему бы для наглядности еще раз на истину нет проверить? говно же
> не открыто реализация алгоритма для исследовательской статьи
шо?
> имена переменных - ну реально из какой-то публикации
массив mas элементов _elem иллюстрирует паттерн "я не могу придумать имя" и больше ничего
слишком слабо для публикации, это - лаба
walk_ 28.08.2010 16:07 # +1
Govnoeb 28.08.2010 17:18 # −2
говно везде:
строка 3 (для краткости буду далее писать С): зачем хранить x,y,z если они нужны только для вычисления квадрата разницы?
С4: если <r> - это индикатор знака, то и сделай знак: который будет равен либо 1, либо -1. иначе предсказатель переходов начнет срать кирпичами
С6: почему бы из read() не сделать конструктор? видимо не дошли еще по школьной программе
С13: на хера operator<() если он нигде не используется?
С26,27: лютое, едкое говно. а ну да я забыл STL в школьной программе нет
С33: получается, что в <mas> любые значения хранятся дважды, но с разным знаком. хитро
С50, 81: говнецо такое добротное
я вообще не понял смыслa массива <vis>
Govnoeb 28.08.2010 17:30 # 0
по поводу С13: operator<() таки нужен. sort() не приметил сразу. тем не менее передача <_elem> по значению делает этот код говнецом
Dummy00001 28.08.2010 19:09 # 0
То что ты перечисляешь, это мелочи за 15 минут фиксуемые. А вот блин плохо продукоментированиый код нередко становится занозой в жопе когда его нужно исправить/усовершенствовать, но никто вспомнить/понять что/как он делает не может.
szharenie_semechki 29.08.2010 17:11 # 0
Если кому-то интересно - могу пару сотен примерно таких же исходников выкинуть. :)
absolut 29.08.2010 17:39 # +2
вот выкинуть их только и можно
szharenie_semechki 30.08.2010 01:02 # 0
pushkoff 28.08.2010 21:04 # +2
подробнее плз, или ссылку где почитать, а то я че-то не в теме...