[Ответить в тред] Ответить в тред

09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!
30/09/16 - BREAKING NEWS ШОК АБУ ПРОДАЛСЯ МЭЙЛУ (на самом деле нет)
25/09/16 - Персональное обращение Абу - СБОР ПОЖЕРТВОВАНИЙ НА ДВАЧ


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 5 | 2 | 5
Назад Вниз Каталог Обновить

Аноним # OP  12/10/16 Срд 10:27:06  137657590  
14762572267640.png (15Кб, 400x400)
const
maxN = 111111;

var
i,n,c,j,count,cur : longint;

a : array [1..maxN] of longint;

l,r,m : longint;

ans : longint;

procedure swap(var w1,w2 : longint);
var
temp : longint;
begin
temp := w1; w1 := w2; w2 := temp;
end;

procedure qsort(left,right : longint);
var
i,j,key : longint;
begin
i := left; j := right;
key := a[(i + j) shr 1];
repeat
while (a < key) do inc(i);
while (a[j] > key) do dec(j);
if (i <= j) then begin
swap(a,a[j]);
inc(i); dec(j);
end;
until i>j;
if (i < right) then qsort(i,right);
if (j > left) then qsort(left,j);
end;

begin
readln(n,c);
for i := 1 to n do begin
read(a);
if a > r then r := a;
end;

qsort(1,n);

while l < r do begin
m := (l + r + 1) shr 1;

count := 1;
cur := a[1];
for i := 2 to n do
if a - cur < m
then
continue
else begin
cur := a;
inc(count);
end;

if count >= c
then begin
l := m;
if count >= c
then
ans := m;
end
else begin
r := m-1;
end;
end;

writeln(ans);

end.
Аноним 12/10/16 Срд 10:29:30  137657674
>>137657590 (OP)
2016 паскаль ахаха
Аноним 12/10/16 Срд 10:37:37  137657973
Это запости свою лабу с первого курса тред? Ну го.
Текст задания:
Дан список идентификаторов. Длина каждого идентификатора не более 8 символов. Идентификаторы в списке расположены в лексикографическом порядке. Составить функции (подпрограммы) для следующих операций:
a) удалить из списка все идентификаторы, совпадающие с заданным;
б) удалить второй индификатор;
в) удалить последний индефикатор.
Текст программы:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define MAXDL 9 /макс.длина ид-ра(строки символов с признаком конца '\0')/
struct el_sp / элемент списka /
{ char id [MAXDL]; / идентификатор /
struct el_sp sled; / ссылка на следующий элемент /
};
/
-------------------------------------------------------------------------------/
/
функция включения очередного идентификатора в список /
/
-------------------------------------------------------------------------------/

void vkl ( struct el_sp p, char t_id[] )
/
Вх. данные: p - указатель списка идентификаторов в
лексикографическом порядке,
t_id - включаемый в список (текущий) ид-р
/
/ Вых. данные: p /
{ struct el_sp
pt, / указатель включаемого эл-та /
k,j; / указатели очередного и предыдущего
элементов списка
/
/ выделение памяти для нового эл-та списка /
pt=(struct el_sp )malloc(sizeof(struct el_sp));
strcpy(pt->id,t_id);
if (
p==NULL || strcmp(pt->id,(p)->id)<0)
{ /
включение ид-ра в начало списка /
pt->sled=
p; p=pt;
}
else
{ /
поиск элемента списка, после которого нужно
включить идентификатор /
k=
p;
while (k!=NULL && strcmp(pt->id,k->id)>=0)
{ j=k; k=k->sled; }
/ включение эл-та pt после элемента j /
j->sled=pt; pt->sled=k;
}
}

/-----------------------------------------------------------/
/ Функции удаления /
/-----------------------------------------------------------/

void del_sp ( struct el_sp
p) //Функция удаления 2-го элемента

{ struct el_sp k;
if (
p==NULL || (p)->sled==NULL)
return;
k=(
p)->sled;
(p)->sled=k->sled;
free(k);
}

void delp_sp ( struct el_sp p) //Функция удаления последнего элемента
{ struct el_sp
k,j;
j=
p;
if ((p)->sled==NULL)
{(
p)=NULL;
free(j);
}

else
{
k=p;
while(k->sled!=NULL)
{
j=k;
k=k->sled;
}
j->sled=NULL;
free(k);
}
}
void del_sl(struct el_sp
p, char sl[]) // Функция удаления заданного элемента
{ struct el_sp
k,j=NULL;
k=
p;
while(k!=NULL)
{ if (strcmp(sl,k->id)==0)
{ if (j==NULL)
{(p)=k->sled;
free(k);
k=(
p);
}
else
{ j->sled=k->sled;
free(k);
k=j->sled;
}
}
else
{ j=k;
k=k->sled;
}
}
}

/-----------------------------------------------------------/
/ функция печати списка /
/-----------------------------------------------------------/

void pech_sp ( struct el_sp p )
/
Вх. данные: p - указатель начала списка /
{ struct el_sp
i; / указатель текущего элемента списка /
printf ("\nPE3YLTAT:\n");
for ( i=p; i!=NULL; i=i->sled )
puts (i->id);
}




/-----------------------------------------------------------/
/ О С Н О В Н А Я П Р О Г Р А М М А /
/-----------------------------------------------------------/

int main()
{ struct el_sp p; / указатель начала списка /
unsigned n ; /
количество идентификаторов /
unsigned i ; /
параметр цикла /
char t_id[MAXDL], /
текущий идентификатор /
sl[MAXDL]; /
удаляемый идентификатор /

printf ("\nVvedite chislo slov\n n=");
scanf ("%u",&n);
getchar(); /
пропуск символа "перевод строки" /
p=NULL; /
список пока пуст /
printf ("Vvedite slova \n");

for ( i=1; i<=n; i++ )
{ gets (t_id);
vkl (&p,t_id); /
включение ид-ра в список /
}
pech_sp (p); /
печать списка */
printf("Vvedite ydalyaemoe slovo \n");
gets(sl);

del_sl(&p,sl);
pech_sp (p);
del_sp (&p);
pech_sp (p);
delp_sp (&p);
pech_sp (p);
getch();
return 0;
}
Аноним 12/10/16 Срд 10:40:04  137658068
14762580049950.png (11Кб, 400x400)
http://dropmefiles.com/IAuf8
Аноним 12/10/16 Срд 12:48:47  137663697
>>137657973
>printf ("Vvedite slova \n");
Бля проиграл.
>постить код на сайте, где нет разметки для него
Даун.
>не знать о стилях кодирования
Долбоеб.
Аноним 12/10/16 Срд 12:54:46  137663975
>>137657590 (OP)
Паскалебляди не человеки!

Вот за такое for i := 1 to n do begin
then begin нужно расстреливать!

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 5 | 2 | 5
Назад Вверх Каталог Обновить

Топ тредов
Избранное