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

Автор Egor, 14 лет назад, По-русски
К сожалению авторизация через Gmail опять бастовала, так что я не смог анонсировать 2 контеста:
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
И чтобы 2 раза не вставать - кто-нибудь может найти багу в Inaba:
public class Inaba implements Runnable {
private InputReader in;
private PrintWriter out;
private byte[] res;
private int r, c;
private boolean[][] b;
private int[][] ind;
private int[] dx = {1, 0, -1, 0};
private int[] dy = {0, -1, 0, 1};

public static void main(String[] args) {
new Inaba().run();
}

public Inaba() {
in = new InputReader(System.in);
out = new PrintWriter(System.out);
}

public void run() {
res = new byte[1 << 25];
while (true) {
try {
r = in.readInt();
c = in.readInt();
int m = 0;
int x = 0;
b = new boolean[r][c];
ind = new int[r][c];
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
ind[i][j] = 1 << (x++);
char cc = in.readCharacter();
if (cc == 'e') {
m += ind[i][j];
b[i][j] = true;
}
}
}
Arrays.fill(res, 0, 1 << (r * c), (byte) -1);
if (go(m) == 1)
out.println("Tewi first");
else
out.println("Reisen first");
out.flush();
} catch (InputMismatchException e) {
break;
}
}
out.close();
}

private int go(int m) {
if (res[m] != -1)
return res[m];
res[m] = 0;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
if (b[i][j]) {
for (int d = 0; d < dx.length; d++) {
if (go(i, j, m, d) == 0)
return res[m] = 1;
}
}
}
}
return 0;
}

private int go(int x, int y, int m, int i) {
int nx = x + 2 * dx[i];
int ny = y + 2 * dy[i];
if (nx >= 0 && nx < r && ny >= 0 && ny < c && !b[nx][ny] && b[x + dx[i]][y + dy[i]]) {
b[nx][ny] = true;
b[x][y] = false;
b[x + dx[i]][y + dy[i]] = false;
int nm = m + ind[nx][ny] - ind[x][y] - ind[x + dx[i]][y + dy[i]];
int res = go(nm);
if (res != 0)
res = go(nx, ny, nm, i);
b[nx][ny] = false;
b[x][y] = true;
b[x + dx[i]][y + dy[i]] = true;
return res;
}
return 1;
}
}
Класс ввода и импорты опущены, в них ошибок точно нет
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Не учитывается, что можно перепрыгнуть через несколько подряд стоящих колышков.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Стоп, то есть можно прыгать так: eeex => xxxe?
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      "A player may jump a peg over an adjacent peg or several adjacent pegs, as long as the hole the jumping peg lands in is unoccupied."
      По условию можно
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Блин, не так условие понял
        Спасибо
        Учитывая, что еще 1 задачу дописал через пару минут после конца контеста - совсем обидно
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

интересный второй сайт :)
где там список будущих соревнований и как там проходит соревнование, можна просто подскзать на ссылку ? 

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Почему я не могу сабмитить на CodeChef таски с последнего контеста???
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Там надо в практизе искать задачу и там сабмитить.