На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Угу, спасибо
Поза форумом
Angry Coder написав:
xXx написав:
короче фигня получаеться...
формулы какие-то не такие...
если хочешь, можешь поискать авторские решения...и проверь на них, если на твоём тесте будет 0, то я л...р(не хороший человек)да мне не за чем:) я уверен на 100%. по крайней мере в формулах для проекций.
Что и такие бывают? (форумы)
вот и мне не за чем. не сегодня так завтра можно будет проверить решения на тестах с правильными(по мнению жюри) выходными данными...
Поза форумом
сегодня-завтра? наивный у жюри сегодня выходной, завтра тоже, в понедельник разгрузочный день. Во вторник день грудничков. В среду переучет. Так что забудь
Поза форумом
А что там случилось, почему результаты только в понедельник-вторник?
Поза форумом
Мне было впадлу тестить...
Circuit.cpp
#include<stdio.h> int *a,x,n,k,c[2]={0,0},i,j=0; int main() { scanf("%d",&n); if(n&3)return 0; k=n>>1; a=new int[k]; for(i=0;i<k;i++) { scanf("%d",&a[i]); c[a[i]]++; } if(c[0]!=c[1]){ do { c[a[j++]]--; scanf("%d",&x); c[x]++; }while(c[0]!=c[1]); printf("2 %d %d %d %d",j,j+1,j+k,j+k+1); }else printf("1 %d %d",k,k+1); delete a; return 0; }
Поза форумом
Anna написав:
А что там случилось, почему результаты только в понедельник-вторник?
не знаю, участвую здесь впервые, организация - не очень, в принципе, как для Винницкои нетОИ - то еще неплохо. Просто даже о выводе ничего конкретного в правилах не сказано, я до сих пор точно не знаю, надо ли выводить символ перевода каретки или нет.
Поза форумом
2DeusEx:
ты уверен, что функция erase работает не за линию? я как раз думаю, что она должна работать за линию, так как string это random-access контейнер. так что у тебя может быть квадрат. но я думаю все равно пройдет:)
тебе надо было deque юзать, если уж так.
Відредаговано Angry Coder (2005-11-19 16:03:08)
Поза форумом
да в прошлом году вроде было все нормально... по крайней мере в первых турах
Поза форумом
DeusEx написав:
сегодня-завтра? наивный у жюри сегодня выходной, завтра тоже, в понедельник разгрузочный день. Во вторник день грудничков. В среду переучет. Так что забудь
OK. Не на этой неделе, так на следующей...
Поза форумом
Angry Coder написав:
2DeusEx:
ты уверен, что функция erase работает не за линию? я как раз думаю, что она должна работать за линию, так как string это random-access контейнер. так что у тебя может быть квадрат. но я думаю все равно пройдет:)
нет, все правильно . Этот стринг из С++, а не С
Поза форумом
В прошлом году все было реально быстро(т.е. за 1-2 дня уже были результаты).
Все автоматизировано!
Поза форумом
так в чем же дело сейчас? решили попрактиковаться в ручном наборе входных данных?
Відредаговано Anna (2005-11-19 16:08:00)
Поза форумом
DeusEx написав:
нет, все правильно . Этот стринг из С++, а не С
это стринг из stl. и там он реализован как контейнер произвольного доступа,причем односторонний. Тоесть при удалении он должен получить новые значения для всех итераторов. а это линия.
Поза форумом
Очевидно компьютеры попросили выходной :-)
Поза форумом
Устали, бедные...
Поза форумом
О прямой аддресации в пасьянсах, у меня масив
list= array[1..maxn]of record
p1,p2: word;
cnt: shortint;
end;
где
p1,p2- положения первой и второй карты;
cnt - признак положений карт
cnt:
2 - обе сверху
0 - одна там, одна там
-2 - обе снизу
sizeof(list)= 9000
но не будем забывать, что у компилится всё на фри паскале, где ограничений на память нет
все это значительно ускорить процесс
Поза форумом
Реально, кто сделает за O(n^2), то получит максимум половину балов - здесь четкая оптимизация по поиску следующего числа.
Поза форумом
Yurok написав:
О прямой аддресации в пасьянсах, у меня масив
list= array[1..maxn]of record
p1,p2: word;
cnt: shortint;
end;
где
p1,p2- положения первой и второй карты;
cnt - признак положений карт
cnt:
2 - обе сверху
0 - одна там, одна там
-2 - обе снизу
sizeof(list)= 9000
но не будем забывать, что у компилится всё на фри паскале, где ограничений на память нет
все это значительно ускорить процесс
Мудрёный у тебя массив.Как по мойму то здесь всё легко:
program newpatiance;
type
card=record
t,b:integer;
end;
cds=array[1..1000]of card;
procedure turn(var c:card);
var
temp:integer;
begin
temp:=c.t;
c.t:=c.b;
c.b:=temp;
end;
procedure sort(var cards:cds;n:integer);
var
temp:card;
i,j:integer;
changed:boolean;
begin
for i:=1 to N-1 do
for j:=1 to N-1 do
if(cards[j].t>cards[j+1].t)or((cards[j].t=cards[j+1].t)and(cards[j].b>cards[j+1].b))then
begin
temp:=cards[j];
cards[j]:=cards[j+1];
cards[j+1]:=temp;
end;
end;
procedure show(c:cds;n:integer);
var
i:integer;
begin
for i:=1 to n do
write('(',c[i].t,' ',c[i].b,') ');
writeln;
end;
var
cards:cds;
n,res:integer;
i,z,r1,r2:integer;
begin
read(n);
for i:=1 to n do read(cards[i].t);
for i:=1 to n do read(cards[i].b);
{show(cards,n);}
sort(cards,n);
{show(cards,n);}
res:=0;
for i:=1 to n do
begin
if(cards[i].t=cards[i+1].t)then
if(cards[i].b=cards[i+1].b)then
begin
turn(cards[i]);
sort(cards,n);
{ show(cards,n);}
inc(res);
end else
begin
for z:=1 to n do if(cards[z].t=cards[i].b)then turn(cards[i+1]) else turn(cards[i]);
sort(cards,n);
{ show(cards,n);}
inc(res);
end;
end;
writeln(res);
end.
Всё что нужно-отсортировать массив и перевернуть,если есть две одинаковые верхние карты.
В конце-концов от положения карт ничего не изменится - надо найти кол-во переворотов.
Відредаговано jack_spektor (2005-11-19 16:35:19)
Поза форумом
To jack_spektor:
У тебя поиск карты занимает O(n), т.е. весь алгоритм где-то O(n^2).
У меня все линейно(O(n)).
Поза форумом
Батыев Андрей написав:
To jack_spektor:
У тебя поиск карты занимает O(n), т.е. весь алгоритм где-то O(n^2).
У меня все линейно(O(n)).
Алгоритм у меня действительно не самый лучший,но по-мойму в первом туре лучше и не потребуется.Хотя чёрт его знает.
Но главное идея правильная.А ты сверял с тем тестом?Какие у тебя результаты
Поза форумом
Anna написав:
А что там случилось, почему результаты только в понедельник-вторник?
Немного приболел Ю.Я.Пасихов.
Некому настроить проверялку.
Поза форумом
Что, действительно больше никто не может?!
Поза форумом
jack_spektor написав:
ROBOT написав:
CIRCUIT совсем легко!!!
Не сказал бы...
У тебя когда-нибудь получалось больше двух разрезов?
Мне чего-то кажеться, что там больше двух не может быть...
Да!! не может быть больше двух разрезов в этом и легкость - математически доказал что всегда найдется последовательность подряд идущих 0 и 1 что кол 0 = кол 1 = n div 4 - это с математической олимпы задача
если это вывести то прога елементарная выйдет
Поза форумом
Кто-нить сделает сайт с решениями и их разборами?
Раньше был netoi.narod.ru а сейчас?
Поза форумом
Anna написав:
Что, действительно больше никто не может?!
А ты сможешь настроить проверялку, для проверки решений восьмисот участников? И я не смогу
Нужно прицепить к ней авторские тесты, подобрать таймлимиты, ведь для каждого теста они разные...
Если плохо в этом разбираться, можно дров наломать, а потом участники в праведном гневе забросают жюри письмами, мол неправильно проверяли наши идеальные алгоритмы.
В общем работа ответственная, её должен делать специалист, который на этом зубы сьел.
Поза форумом