Submission #1291193
Source Code Expand
using System; using System.Collections.Generic; using System.Linq; static class Program { static void Main() { new Magatro().Solve(); } } class Magatro { private bool[] B = new bool[26]; private int[] Map = new int[26]; private int[] T = new int[1 << 25]; const int Mod = 1000000007; private void Scan() { for (int i = 0; i < 5; i++) { var line = Console.ReadLine().Split(' '); for (int j = 0; j < 5; j++) { int k = int.Parse(line[j]); if (k != 0) { B[k] = true; Map[k] = i * 5 + j; } } } } private int Bit(long i) { i = (i & 0x55555555) + (i >> 1 & 0x55555555); i = (i & 0x33333333) + (i >> 2 & 0x33333333); i = (i & 0x0f0f0f0f) + (i >> 4 & 0x0f0f0f0f); i = (i & 0x00ff00ff) + (i >> 8 & 0x00ff00ff); i = (i & 0x0000ffff) + (i >> 16 & 0x0000ffff); return (int)i; } private bool Calc(int state, int i) { int pos = 1 << i; return (state & pos) > 0; } private int Minus(int state, int i) { int pos = 1 << i; return state - pos; } private int DFS(int state) { if (T[state] != -1) { return T[state]; } int c = Bit(state); if (B[c]) { int j = Map[c]; if (!Calc(state, j)) { T[state] = 0; return 0; } int x = j % 5; int y = j / 5; if (0 < x && x < 4 && (Calc(state, j + 1) ^ (Calc(state, j - 1)))) { T[state] = 0; return 0; } if (0 < y && y < 4 && (Calc(state, j + 5) ^ (Calc(state, j - 5)))) { T[state] = 0; return 0; } int res = DFS(Minus(state, j)); T[state] = res; return res; } else { int sum = 0; for (int j = 0; j < 25; j++) { if (!Calc(state, j)) { continue; } int x = j % 5; int y = j / 5; if (0 < x && x < 4 && (Calc(state, j + 1) ^ (Calc(state, j - 1)))) { continue; } if (0 < y && y < 4 && (Calc(state, j + 5) ^ (Calc(state, j - 5)))) { continue; } sum += DFS(Minus(state, j)); sum %= Mod; } T[state] = sum; return sum; } } public void Solve() { Scan(); for(int i = 0; i < (1 << 25); i++) { T[i] = -1; } T[0] = 1; Console.WriteLine(DFS((1 << 25) - 1)); } }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | mban |
Language | C# (Mono 4.6.2.0) |
Score | 100 |
Code Size | 3131 Byte |
Status | AC |
Exec Time | 766 ms |
Memory | 142048 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt |
Subtask1 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt |
Subtask2 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt, test-2-01.txt, test-2-02.txt, test-2-03.txt, test-2-04.txt, test-2-05.txt, test-2-06.txt, test-2-07.txt, test-2-08.txt, test-2-09.txt, test-2-10.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample-01.txt | AC | 70 ms | 140000 KB |
sample-02.txt | AC | 70 ms | 140000 KB |
sample-03.txt | AC | 76 ms | 140000 KB |
sample-04.txt | AC | 70 ms | 140000 KB |
test-1-01.txt | AC | 75 ms | 140000 KB |
test-1-02.txt | AC | 70 ms | 142048 KB |
test-1-03.txt | AC | 70 ms | 140000 KB |
test-1-04.txt | AC | 70 ms | 140000 KB |
test-1-05.txt | AC | 71 ms | 140000 KB |
test-1-06.txt | AC | 70 ms | 142048 KB |
test-1-07.txt | AC | 70 ms | 142048 KB |
test-1-08.txt | AC | 71 ms | 140000 KB |
test-1-09.txt | AC | 71 ms | 142048 KB |
test-1-10.txt | AC | 70 ms | 140000 KB |
test-1-11.txt | AC | 70 ms | 140000 KB |
test-1-12.txt | AC | 70 ms | 142048 KB |
test-1-13.txt | AC | 70 ms | 140000 KB |
test-1-14.txt | AC | 70 ms | 142048 KB |
test-1-15.txt | AC | 70 ms | 142048 KB |
test-2-01.txt | AC | 81 ms | 140000 KB |
test-2-02.txt | AC | 71 ms | 142048 KB |
test-2-03.txt | AC | 77 ms | 140000 KB |
test-2-04.txt | AC | 111 ms | 142048 KB |
test-2-05.txt | AC | 74 ms | 142048 KB |
test-2-06.txt | AC | 226 ms | 140000 KB |
test-2-07.txt | AC | 766 ms | 140000 KB |
test-2-08.txt | AC | 337 ms | 140000 KB |
test-2-09.txt | AC | 283 ms | 140000 KB |
test-2-10.txt | AC | 251 ms | 142048 KB |