Guest User

Untitled

a guest
Apr 16th, 2013
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <algorithm>
  5. #include <string>
  6. #include <cmath>
  7. #include <cstring>
  8. #include <vector>
  9. #include <set>
  10.  
  11. using namespace std;
  12.  
  13. typedef long long ll;
  14. typedef double db;
  15.  
  16. #define forab(i, a, b) for(int i = int(a); i < int(b); ++i)
  17. #define forba(i, b, a) for(int i = int(b) - 1; i >= int(a); --i)
  18. #define forn(i, n) forab(i, 0, n)
  19. #define pb push_back
  20.  
  21. const ll P = (ll)1e9 + 7;
  22.  
  23. ll n;
  24. int k;
  25.  
  26. ll pow(ll a, ll b) {
  27.     if (b == 0)
  28.         return 1;
  29.     if (b % 2 == 0)
  30.         return pow((a * a) % P, b / 2);
  31.     return (pow(a, b - 1) * a) % P;
  32. }
  33.  
  34. int main()
  35. {
  36.     //freopen("01", "r", stdin);
  37.     while (true) {
  38.         cin >> n >> k;
  39.         if (n == 0 && k == 0)
  40.             break;
  41.         ll col = 0, tmp;
  42.         forn(i, k) {
  43.             cin >> tmp;
  44.             if (tmp != 1 && tmp / 2 <= n)
  45.                 col += min(n, tmp - 1) - (tmp / 2);
  46.         }
  47.         ll ans = pow(2ll, n - col);
  48.         cout << ans % P << '\n';
  49.     }
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment