/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Wrong Answer 1ms 532.0 KiB
#3 Wrong Answer 2ms 324.0 KiB
#4 Wrong Answer 2ms 536.0 KiB
#5 Wrong Answer 2ms 320.0 KiB
#6 Wrong Answer 2ms 532.0 KiB
#7 Wrong Answer 2ms 340.0 KiB
#8 Wrong Answer 2ms 320.0 KiB
#9 Wrong Answer 2ms 324.0 KiB
#10 Wrong Answer 2ms 324.0 KiB
#11 Accepted 2ms 532.0 KiB
#12 Accepted 2ms 324.0 KiB
#13 Wrong Answer 2ms 324.0 KiB
#14 Wrong Answer 2ms 324.0 KiB
#15 Wrong Answer 2ms 324.0 KiB

Code

#include <iostream>
#include <vector>
using namespace std;
const int mod= 1e9 + 7;
typedef long long int ll;

ll pow(ll base, ll exp)
{
    ll result = 1;
    while (exp > 0)
    {
        if (exp % 2 == 1)
            result = (result * base) % mod;
        base = (base * base) % mod;
        exp /= 2;
    }
    return result;
}

int main()
{
    int T;
    cin >> T;

    while (T--)
    {
        int N, K;
        cin >> N >> K;

        vector<int> A(N);
        int c = 0;

        for (int i = 0; i < N; i++)
        {
            cin >> A[i];
            if (A[i] == 1) c++;
        }

        if (c < K)
        {
            cout << 0 << endl;
            continue;
        }

        ll tot = pow(2, N) - 1;

        ll bad = 0;
        if (K > 0)
        {
            bad = pow(2, N-c ) - 1;
        }

       ll result = (tot- bad + mod) % mod;
        cout << result -1<< endl;
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1093 Number of Ways (Easy version)
Contest
Brain Booster #5
Language
C++20 (G++ 13.2.0)
Submit At
2024-09-05 17:44:19
Judged At
2024-10-03 13:02:50
Judged By
Score
21
Total Time
2ms
Peak Memory
536.0 KiB