Submission #1328295
Source Code Expand
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<b;i++) using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); } //--------------------------------------------------------------------------------------------------- /*--------------------------------------------------------------------------------------------------- ∧_∧ ∧_∧ (´<_` ) Welcome to My Coding Space! ( ´_ゝ`) / ⌒i / \ | | / / ̄ ̄ ̄ ̄/ | __(__ニつ/ _/ .| .|____ \/____/ (u ⊃ ---------------------------------------------------------------------------------------------------*/ string D; //--------------------------------------------------------------------------------------------------- int memo[24][24][2][2]; int f(int L, int R, int Lu, int Ru) { int &res = memo[L][R][Lu][Ru]; if (0 <= res) return res; res = 0; if (R == 23) { if (L == R) res = 0; else if(L + 1 == R) { rep(a, 1, 10) rep(b, 0, 10) { int t = b + D[R] - '0' + Ru; int tt = t / 10; if (t % 10 != a) continue; int s = a + D[L] - '0' + tt; if (s % 10 != b) continue; if (s / 10 != Lu) continue; res++; //printf("(%d %d)\n", a, b); } } else { rep(a, 1, 10) rep(b, 0, 10) { if ((b + D[R] - '0' + Ru) % 10 != a) continue; int Ruu = (b + D[R] - '0' + Ru) / 10; if ((a + D[L] - '0') / 10 == Lu && (a + D[L] - '0') % 10 == b) res += f(L + 1, R - 1, 0, Ruu); if ((a + D[L] - '0' + 1) / 10 == Lu && (a + D[L] - '0' + 1) % 10 == b) res += f(L + 1, R - 1, 1, Ruu); } } } else { if (L == R) { rep(a, 0, 10) { if ((a + D[L] - '0' + Ru) / 10 != Lu) continue; if ((a + D[L] - '0' + Ru) % 10 != a) continue; res++; //printf("[%d]\n", a); } } else if (L + 1 == R) { rep(a, 0, 10) rep(b, 0, 10) { int t = b + D[R] - '0' + Ru; int tt = t / 10; if (t % 10 != a) continue; int s = a + D[L] - '0' + tt; if (s % 10 != b) continue; if (s / 10 != Lu) continue; res++; //printf("<%d %d>\n", a, b); } } else { rep(a, 0, 10) rep(b, 0, 10) { if ((b + D[R] - '0' + Ru) % 10 != a) continue; int Ruu = (b + D[R] - '0' + Ru) / 10; if ((a + D[L] - '0') / 10 == Lu && (a + D[L] - '0') % 10 == b) res += f(L + 1, R - 1, 0, Ruu); if ((a + D[L] - '0' + 1) / 10 == Lu && (a + D[L] - '0' + 1) % 10 == b) res += f(L + 1, R - 1, 1, Ruu); } } } return res; } //--------------------------------------------------------------------------------------------------- void _main() { cin >> D; while (D.size() < 24) D = "0" + D; rep(L, 0, 24) rep(R, 0, 24) rep(Lu, 0, 2) rep(Ru, 0, 2) memo[L][R][Lu][Ru] = -1; //cout << D << endl; int L = 0; while (D[L] == '0') L++; int ans = 0; rep(x, 0, L + 1) { //printf("{{ %d }}\n", x); ans += f(x, 23, 0, 0); } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | F - Mirrored |
User | hamayanhamayan |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 3655 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 800 / 800 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03 |
All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49, b50, b51, b52, b53, b54, b55, b56, b57, b58, b59, b60, b61, b62, b63 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 1 ms | 256 KB |
a02 | AC | 1 ms | 256 KB |
a03 | AC | 1 ms | 256 KB |
b04 | AC | 1 ms | 256 KB |
b05 | AC | 1 ms | 256 KB |
b06 | AC | 1 ms | 256 KB |
b07 | AC | 1 ms | 256 KB |
b08 | AC | 1 ms | 256 KB |
b09 | AC | 1 ms | 256 KB |
b10 | AC | 1 ms | 256 KB |
b11 | AC | 1 ms | 256 KB |
b12 | AC | 1 ms | 256 KB |
b13 | AC | 1 ms | 256 KB |
b14 | AC | 1 ms | 256 KB |
b15 | AC | 1 ms | 256 KB |
b16 | AC | 1 ms | 256 KB |
b17 | AC | 1 ms | 256 KB |
b18 | AC | 1 ms | 256 KB |
b19 | AC | 1 ms | 256 KB |
b20 | AC | 1 ms | 256 KB |
b21 | AC | 1 ms | 256 KB |
b22 | AC | 1 ms | 256 KB |
b23 | AC | 1 ms | 256 KB |
b24 | AC | 1 ms | 256 KB |
b25 | AC | 1 ms | 256 KB |
b26 | AC | 1 ms | 256 KB |
b27 | AC | 1 ms | 256 KB |
b28 | AC | 1 ms | 256 KB |
b29 | AC | 1 ms | 256 KB |
b30 | AC | 1 ms | 256 KB |
b31 | AC | 1 ms | 256 KB |
b32 | AC | 1 ms | 256 KB |
b33 | AC | 1 ms | 256 KB |
b34 | AC | 1 ms | 256 KB |
b35 | AC | 1 ms | 256 KB |
b36 | AC | 1 ms | 256 KB |
b37 | AC | 1 ms | 256 KB |
b38 | AC | 1 ms | 256 KB |
b39 | AC | 1 ms | 256 KB |
b40 | AC | 1 ms | 256 KB |
b41 | AC | 1 ms | 256 KB |
b42 | AC | 1 ms | 256 KB |
b43 | AC | 1 ms | 256 KB |
b44 | AC | 1 ms | 256 KB |
b45 | AC | 1 ms | 256 KB |
b46 | AC | 1 ms | 256 KB |
b47 | AC | 1 ms | 256 KB |
b48 | AC | 1 ms | 256 KB |
b49 | AC | 1 ms | 256 KB |
b50 | AC | 1 ms | 256 KB |
b51 | AC | 1 ms | 256 KB |
b52 | AC | 1 ms | 256 KB |
b53 | AC | 1 ms | 256 KB |
b54 | AC | 1 ms | 256 KB |
b55 | AC | 1 ms | 256 KB |
b56 | AC | 1 ms | 256 KB |
b57 | AC | 1 ms | 256 KB |
b58 | AC | 1 ms | 256 KB |
b59 | AC | 1 ms | 256 KB |
b60 | AC | 1 ms | 256 KB |
b61 | AC | 1 ms | 256 KB |
b62 | AC | 1 ms | 256 KB |
b63 | AC | 1 ms | 256 KB |