Submission #3403828


Source Code Expand

#include <bits/stdc++.h>

#define For(i, l, r) for(register int i = (l), i##end = (int)(r); i <= i##end; ++i)
#define Fordown(i, r, l) for(register int i = (r), i##end = (int)(l); i >= i##end; --i)
#define Set(a, v) memset(a, v, sizeof(a))
#define Cpy(a, b) memcpy(a, b, sizeof(a))
#define debug(x) cout << #x << ": " << (x) << endl
#define DEBUG(...) fprintf(stderr, __VA_ARGS__)

using namespace std;

template<typename T> inline bool chkmin(T &a, T b) {return b < a ? a = b, 1 : 0;}
template<typename T> inline bool chkmax(T &a, T b) {return b > a ? a = b, 1 : 0;}

inline int read() {
    int x(0), sgn(1); char ch(getchar());
    for (; !isdigit(ch); ch = getchar()) if (ch == '-') sgn = -1;
    for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);
    return x * sgn;
}

void File() {
#ifdef zjp_shadow
	freopen ("E.in", "r", stdin);
	freopen ("E.out", "w", stdout);
#endif
}

const int N = 41, Mod = 1e9 + 7, All = (1 << 17) - 1;

int dp[N][All + 1];
bitset<All + 1> ban;

inline int Up(int val, int pos) {
	return val | (1 << (pos - 1));
}

int main() {

	File();

	int n = read(), X = read(), Y = read(), Z = read(), tmp = Up(Up(Up(0, Z), Y + Z), X + Y + Z);

	For (i, 0, All)
		ban[i] = (i | tmp) == i;

	dp[0][0] = 1;
	For (i, 0, n - 1) For (j, 0, All) 
		if (!ban[j] && dp[i][j])
			For (dig, 1, 10)
				(dp[i + 1][All & Up(j << dig, dig)] += dp[i][j]) %= Mod;

	int ans = 0;
	For (i, 1, All) if (!ban[i])
		(ans += dp[n][i]) %= Mod;

	int fac = 1;
	For (i, 1, n)
		fac = fac * 10ll % Mod;

	printf ("%d\n", (fac - ans + Mod) % Mod);
	
#ifdef zjp_shadow
	cerr << (double)clock () / CLOCKS_PER_SEC << endl;
#endif

    return 0;

}

Submission Info

Submission Time
Task E - Iroha and Haiku
User zjp_shadow
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1721 Byte
Status AC
Exec Time 180 ms
Memory 19328 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 4
AC × 35
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_max1.txt, subtask1_max2.txt, subtask1_max3.txt, subtask1_min1.txt, subtask1_min2.txt, subtask1_min3.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 3 ms 384 KB
subtask0_sample_02.txt AC 3 ms 2432 KB
subtask0_sample_03.txt AC 113 ms 18816 KB
subtask0_sample_04.txt AC 179 ms 19328 KB
subtask1_01.txt AC 83 ms 14720 KB
subtask1_02.txt AC 122 ms 18816 KB
subtask1_03.txt AC 34 ms 8576 KB
subtask1_04.txt AC 18 ms 6528 KB
subtask1_05.txt AC 83 ms 14720 KB
subtask1_06.txt AC 24 ms 6528 KB
subtask1_07.txt AC 86 ms 14720 KB
subtask1_08.txt AC 29 ms 6528 KB
subtask1_09.txt AC 38 ms 8576 KB
subtask1_10.txt AC 35 ms 8576 KB
subtask1_11.txt AC 20 ms 6528 KB
subtask1_12.txt AC 28 ms 6528 KB
subtask1_13.txt AC 45 ms 8576 KB
subtask1_14.txt AC 47 ms 10624 KB
subtask1_15.txt AC 133 ms 18816 KB
subtask1_16.txt AC 123 ms 16768 KB
subtask1_17.txt AC 114 ms 16768 KB
subtask1_18.txt AC 151 ms 18816 KB
subtask1_19.txt AC 142 ms 18816 KB
subtask1_20.txt AC 141 ms 18816 KB
subtask1_21.txt AC 135 ms 18816 KB
subtask1_22.txt AC 133 ms 18816 KB
subtask1_23.txt AC 114 ms 16768 KB
subtask1_24.txt AC 115 ms 16768 KB
subtask1_25.txt AC 138 ms 18816 KB
subtask1_max1.txt AC 180 ms 19328 KB
subtask1_max2.txt AC 168 ms 18816 KB
subtask1_max3.txt AC 164 ms 18816 KB
subtask1_min1.txt AC 3 ms 384 KB
subtask1_min2.txt AC 3 ms 384 KB
subtask1_min3.txt AC 3 ms 384 KB