IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Игроки-2, нужно оптимизировать
xxx000
сообщение 14.04.2010 22:33
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской

Репутация: -  0  +


Ввод из: Стандартный ввод Время выполнения на одном тесте: 1 с
Вывод в: Стандартный вывод Ограничение памяти программы на одном тесте: 2000 кб


После долгих и мучительных попыток Власу с помощью программистов из ТРТУ удалось, наконец, замостить уголками доску размера 2nx2n без произвольной клетки. Однако Еник вовсе не уверен, что предложенное Власом и программистами решение верно. Он просит вас написать программу, проверяющую правильность мощения.
Напоминаем, что на месте вырезанной клетки должен стоять 0. Остальные клетки должны содержать числа от 1 до (2 в n степени*2 в n степени-1)/3 соответственно принадлежности клетки определенному уголку. Уголки не должны перекрываться и не должно быть непокрытых клеток (кроме вырезанной, естественно).
Входные данные: В первой строке – число n (0&ltn&lt10). Во второй строке - координаты вырезанной клетки. Далее 2 в n степени строк по 2 в n степени чисел в каждой через пробел – схема замощения доски.
Выходные данные: вывести «Accepted», если предложенная схема замощения является верной, или «Wrong Answer», если нарушено одно из правил замощения.

Пример входных данных:
2
1 1
0 1 2 2
1 1 3 2
4 3 3 5
4 4 5 5
Пример выходных данных:
Accepted

---------------------------------------


var
a:array [0..1200,0..1200] of integer;
d:array [1..350] of integer;
n,z,c,i,j,x,y,b:longint;
begin
readln(n);
z:=1;
for i:=1 to n do z:=z*2;
readln(x,y);
for i:=1 to z do
for j:=1 to z do read(a[i,j]);

for i:=1 to z do
begin
for j:=1 to z do
begin
if (a[i,j]=0)and(x<>i)and(y<>j) then
begin
writeln('Wrong Answer');
halt;
end else
begin
c:=a[i,j];
if (c>0)and(a[i,j+1]=c) then
begin
if (a[i+1,j]=c) then inc(d[c],3) else
if (a[i-1,j]=c) then inc(d[c],3);
end;
if (c>0)and(a[i,j-1]=c) then
begin
if (a[i+1,j]=c) then inc(d[c],3) else
if (a[i-1,j]=c) then inc(d[c],3);
end;
end;
end;
end;
for i:=1 to 341 do if d[i]>3 then
begin
writeln('Wrong Answer');
halt;
end;
writeln('Accepted');
end.


--------------------------------------------

система пишет, что превышен лимит памяти, помогите!!


--------------------------------------------

и ещё это задача с 7-й олимпиады ФАВТ, нам её училка задала, а мы тока в 8 классе. што умеем, то и делаем

Сообщение отредактировано: xxx000 - 15.04.2010 21:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xxx000
сообщение 18.04.2010 19:19
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской

Репутация: -  0  +


http://contester.tsure.ru/ - все вопросы к ней
вот мой код который прошёл все тесты


var
a,b:array[1..1025] of longint;
d:array[-1..350000] of integer;
f,c,j,i,k,l,n,m,o,p,w,q,z,x,y:longint;
begin
readln(z);
n:=1;
for i:=1 to z do n:=n*2;
readln(x,y);
f:=(n*n-1) div 3;
for i:=1 to n do
begin
read(a[i]);
if a[i]>f then
begin
writeln('Wrong Answer');
halt;
end;
end;
if (x=1)and(a[y]<>0) then
begin
writeln('Wrong Answer');
halt;
end;

for i:=2 to n do
begin
for j:=1 to n do
begin
read(b[j]);
if b[j]>f then
begin
writeln('Wrong Answer');
halt;
end;
end;
if (x=i)and(b[y]<>0) then
begin
writeln('Wrong Answer');
halt;
end;

for j:=1 to n do
begin
inc(d[a[j]]);
if (a[j]=-1) then inc(o);
if (a[j]>0)and(a[j+1]=a[j])and((b[j]=a[j])or(b[j+1]=a[j])) then
begin
inc(d[a[j]],2);
inc(o);
inc(p);
if (b[j]=a[j]) then b[j]:=-1 else
if b[j+1]=a[j] then b[j+1]:=-1;
a[j]:=-1;
a[j+1]:=-1;
end;
if (a[j]>0)and(a[j]=b[j])and((a[j]=b[j+1])or(a[j]=b[j-1])) then
begin
inc(d[a[j]],2);
inc(o);
if (b[j+1]=a[j]) then b[j+1]:=-1 else
if (b[j-1]=a[j]) then b[j-1]:=-1;
inc(p);
a[j]:=-1;
b[j]:=-1;
end;
if (a[j]=0)and(q=1) then
begin
writeln('Wrong Answer');
halt;
end;
if (a[j]=0) then
begin
inc(o);
inc(q);
a[j]:=-1;
end;
end;

for j:=1 to n do a[j]:=b[j];
end;
{ for i:=1 to n do
begin
if (a[j]<>-1)or((a[j]<>0)and(y=n)and(x=j)) then
begin
writeln('Wrong Answer');
halt;
end;
end;
} for i:=1 to 350000 do
if d[i]>3 then
begin
writeln('Wrong Answer');
halt;
end;
if n*n-(p*3)<>1 then
begin
writeln('Wrong Answer');
halt;
end;
writeln('Accepted');
end.


volvo я где ты сдавал????
и кстати я её сдал со 140 раза

Сообщение отредактировано: xxx000 - 18.04.2010 19:25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
xxx000   Игроки-2   14.04.2010 22:33
Client   a:array [0..1200,0..1200] of integer;вот ошибка, н...   14.04.2010 22:59
volvo   Абсолютно по этой же причине не будет работать и н...   15.04.2010 9:00
xxx000   и что делать   15.04.2010 21:16
volvo   Подумать над заданным выше вопросом: У тебя невер...   15.04.2010 21:30
xxx000   volvo тут неправильно показано, это степень. и я с...   15.04.2010 21:51
volvo   В таком случае будь добр исправить первый пост, и ...   15.04.2010 21:54
xxx000   я не знаю как поднять n. Вроде исправил, помогит...   15.04.2010 21:56
xxx000   помогите пожалуйста   15.04.2010 22:26
Client   т.е. возвести число в степень?   15.04.2010 22:43
xxx000   ну в условии БЫЛО 2n, а надо 2 в n Client, пожалу...   15.04.2010 22:44
Client   var x, n, i : integer; k: longint; begin ...   15.04.2010 22:53
xxx000   Client, я знаю как возводить в степень, я не знаю ...   15.04.2010 22:55
Client   спрошу еще раз: зачем массив 1200*1200 ? кто столь...   15.04.2010 22:59
volvo   Программа получит файл, который ей надо обработать...   15.04.2010 23:19
Client   Да, это так, но... :) все таки это слишком Неа. Ра...   15.04.2010 23:52
xxx000   volvo а как читать по три строки, НЕ из ФАЙЛА   16.04.2010 20:57
volvo   А я не предлагал читать не из файла. Я предлагал ч...   16.04.2010 23:32
xxx000   volvo конечно спасибо, но fpc Неверный ответ на т...   17.04.2010 20:35
volvo   Что-то твой сервер не то делает... Во-первых, я до...   18.04.2010 9:46
volvo   Нет, ребята, я просто в шоке. Нашел еще одно уязви...   18.04.2010 10:17
volvo   :yahoo!: Я-таки добил эту задачку... Зачли на...   18.04.2010 12:46
xxx000   http://contester.tsure.ru/ - все вопросы к ней вот...   18.04.2010 19:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 10:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"