Submission #1497584
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 20; LL a[maxn], power[maxn], n, m, ans; LL dfs1(LL k, LL n, LL pre){ if (2*k+1 == m){ LL res; a[k] = n / (power[k] + power[k-1]) - pre; if (a[1] <= -10 || 10 <= a[1]) return 0; if ((pre + a[k]) * (power[k] + power[k-1]) != n) return 0; if (a[1] >= 0) res = 10 - abs(a[1]) - 1; else res = 10 - abs(a[1]); for (int i=2; i<=k; i++) if (a[i] <= -10 || 10 <= a[i]) return 0; else res *= 10 - abs(a[i]); return res * 10; } LL res = 0, d = power[k-1] + power[m-1-k], t; a[k] = ((n / power[k-1] - pre) % 10 + 10) % 10; t = a[k] + pre; res = dfs1(k+1, n-t*d, t); if (t){ a[k] -= 10; t -= 10; res += dfs1(k+1, n-t*d, t); } return res; } LL dfs2(LL k, LL n, LL pre){ if (2*k == m){ LL res; a[k] = n / power[k-1] - pre; if (a[1] <= -10 || 10 <= a[1]) return 0; if (a[1] >= 0) res = 10 - abs(a[1]) - 1; else res = 10 - abs(a[1]); for (int i=2; i<=k; i++) if (a[i] <= -10 || 10 <= a[i]) return 0; else res *= 10 - abs(a[i]); return res; } LL res = 0, d = power[k-1] + power[m-1-k], t; a[k] = ((n / power[k-1] - pre) % 10 + 10) % 10; t = a[k] + pre; res = dfs2(k+1, n-t*d, t); if (t){ a[k] -= 10; t -= 10; res += dfs2(k+1, n-t*d, t); } return res; } int main(){ scanf("%lld", &n); if (n % 9) { puts("0"); return 0; } n /= 9; power[0] = 1; for (int i=1; i<=18; i++) power[i] = power[i-1] * 10; for (int i=2; i<=18; i++){ if (i&1) { m = i; ans += dfs1(1, n, 0); } else { m = i; ans += dfs2(1, n, 0); } } printf("%lld\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Mirrored |
User | Cyanic |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 1646 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:52:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%lld", &n); ^
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 |