Submission #1868377
Source Code Expand
#include <bits/stdc++.h> using namespace std; int D; int d[22]; long long ans; bool analyze(int ndig) { int tmp = D; for (int i = ndig; i >= 1; --i) { d[i] = tmp % 10; tmp /= 10; } return tmp == 0; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> D; for (int ndig = 2; ndig <= 20; ++ndig) { bool odd = ndig % 2; if (!analyze(ndig)) continue; long long cur = 1; // current answer // d[1], d[2], ..., d[ndig] bool lef = 0 /* -> */, rig = 0 /* <- */; for (int dig = 1; dig <= ndig / 2; ++dig) { bool nlef = 0, nrig = 0; bool LEF = 0, RIG = 0; // opposite: ndig + 1 - dig int npair = 0; for (int i = 0; i <= 9; ++i) { for (int j = 0; j <= 9; ++j) { // check for validity if (dig == 1) { if (j == 0) continue; if (i < j) continue; } // I - J ~ [d[dig] + 1, d[dig]] // J - I = d[n + 1 - dig] || 10 + J - I = d[n + 1 - dig] int I = i, J = j; if (lef) I += 10; if (rig) --J; if (I - j == d[dig]) nlef = 0; else if (I - j == d[dig] + 1) nlef = 1; else continue; if (J - i == d[ndig + 1 - dig]) nrig = 0; else if (10 + J - i == d[ndig + 1 - dig]) nrig = 1; else continue; // now valid ++npair; LEF = nlef; RIG = nrig; } } cur *= npair; lef = LEF; rig = RIG; } if (!odd && lef != rig) continue; else if (odd) { int cnt = 0; for (int i = 0; i <= 9; ++i) { int I = i; if (lef) I += 10; if (rig) I--; if (I - i == d[(ndig + 1) / 2]) ++cnt; } cur *= cnt; } ans += cur; } cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | F - Mirrored |
User | cheater2k |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 1688 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 |