Блог пользователя bet_hendl

Автор bet_hendl, 12 лет назад, По-русски

Добрый вечер. Я решил уже некоторые задачи из programming-challenges на паскале и у меня все правильно, но там показывает WA. Я думаю что это из за того что там сразу вводятся несколько тестов. Ну вот, как мне писать код тогда.... Помогите с кодом на Паскале на примере некой задачки из нее.... :(

  • Проголосовать: нравится
  • -4
  • Проголосовать: не нравится

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

Например задача (110302) ГДЕ ВАЛЬДОРФ. Для него мой код

{$N+}
PROGRAM ACM;
var
 poz:array[0..60,0..60] of integer;
// Process Of Getting
function get(x,i,j:longint):longint;
begin
 if x=1 then get:=poz[i-1,j-1];
 if x=2 then get:=poz[i-1,j+1];
 if x=3 then get:=poz[i-1,j];
 if x=4 then get:=poz[i,j-1];
 if x=5 then get:=poz[i,j+1];
 if x=6 then get:=poz[i+1,j];
 if x=7 then get:=poz[i+1,j-1];
 if x=8 then get:=poz[i+1,j+1];
end;
// Program Solve Begin
label 10;
var
 a:array[0..60,0..60] of char;
 coca_cola:array[0..3000,0..8] of string;
 word:array[0..30] of string;
 o1,o2:array[0..30] of integer;
 test,t_c,i,j,n,m,l,y,x,fanta,ibi,k:integer;
begin
 readln(test);
 for t_c:=1 to test do
  begin
   readln;l:=0;
   readln(n,m);
   for i:=1 to n do begin
    for j:=1 to m do
     begin
      inc(l);
      read(a[i,j]);a[i,j]:=upcase(a[i,j]);
      poz[i,j]:=l;
      for x:=1 to 4 do
       begin
        y:=get(x,i,j);
        coca_cola[l,x]:=a[i,j]+coca_cola[y,x];
       end;
     end;
    readln;end;
   for i:=n downto 1 do
    for j:=m downto 1 do
     begin
      l:=poz[i,j];
      for x:=5 to 8 do
       begin
        y:=get(x,i,j);
        coca_cola[l,x]:=a[i,j]+coca_cola[y,x];
       end;
     end;
   readln(k);
   for ibi:=1 to k do
    begin
     readln(word[ibi]);
     word[ibi]:=upcase(word[ibi]);
     for i:=1 to n do
      for j:=1 to m do
       begin
        fanta:=poz[i,j];
        for x:=1 to 8 do
         if copy(coca_cola[fanta,x],1,length(word[ibi]))=word[ibi] then
          begin
           o1[ibi]:=i;o2[ibi]:=j;goto 10;
          end;
       end;
    10:end;
   for i:=1 to k do
    writeln(o1[i],' ',o2[i]);
  end;
end.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Обфускация рулит :) Там есть свиток в редактировании, нажмите на него, затем тыркните на block, и вставляйте туда свой код.

»
12 лет назад, # |
  Проголосовать: нравится -22 Проголосовать: не нравится

ХЕЛЛО. Че никто не решал задачи на programming-challeng? HELP PLEASE!!!!