Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <algorithm>
- #include <string>
- #include <cmath>
- #include <cstring>
- #include <vector>
- #include <set>
- using namespace std;
- typedef long long ll;
- typedef double db;
- #define forab(i, a, b) for(int i = int(a); i < int(b); ++i)
- #define forba(i, b, a) for(int i = int(b) - 1; i >= int(a); --i)
- #define forn(i, n) forab(i, 0, n)
- #define pb push_back
- const ll P = (ll)1e9 + 7;
- ll n;
- int k;
- ll pow(ll a, ll b) {
- if (b == 0)
- return 1;
- if (b % 2 == 0)
- return pow((a * a) % P, b / 2);
- return (pow(a, b - 1) * a) % P;
- }
- int main()
- {
- //freopen("01", "r", stdin);
- while (true) {
- cin >> n >> k;
- if (n == 0 && k == 0)
- break;
- ll col = 0, tmp;
- forn(i, k) {
- cin >> tmp;
- if (tmp != 1 && tmp / 2 <= n)
- col += min(n, tmp - 1) - (tmp / 2);
- }
- ll ans = pow(2ll, n - col);
- cout << ans % P << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment