149302025-02-08 12:13:07iSamu7598Szitakötő (50 pont)cpp17Wrong answer 2/50600ms2292 KiB
#include <iostream>
#include <vector>

using namespace std;

const int MOD = 1000000007;

// Számoljuk ki, hányféle irányválasztás van, hogy a K. sorszámú lárva maradjon életben.
int count_ways(int N, int K, vector<int>& sizes) {
    // Két lehetséges irány van minden lárvához: balra vagy jobbra
    int result = 0;

    // A lárvák a K. sorszámú lárva esetén
    for (int i = 0; i < (1 << N); ++i) {
        // Minden lárvát két irányba helyezünk, és követjük a szabályokat
        bool valid = true;
        vector<int> direction(N); // 0 - balra, 1 - jobbra
        for (int j = 0; j < N; ++j) {
            direction[j] = (i >> j) & 1;
        }

        // A lárvák közötti találkozások vizsgálata
        for (int j = 0; j < N - 1; ++j) {
            for (int k = j + 1; k < N; ++k) {
                if (direction[j] == direction[k]) continue;
                if (sizes[j] < sizes[k]) {
                    if (direction[j] == 1 && direction[k] == 0) {
                        valid = false;
                        break;
                    }
                } else {
                    if (sizes[k] < sizes[j]) {
                        if (direction[k] == 1 && direction[j] == 0) {
                            valid = false;
                            break;
                        }
                    }
                }
            }
        }

        if (valid) {
            ++result;
            result %= MOD;
        }
    }
    return result;
}

int main() {
    int N, K;
    cin >> N >> K;
    
    vector<int> sizes(N);
    for (int i = 0; i < N; ++i) {
        cin >> sizes[i];
    }
    
    cout << count_ways(N, K, sizes) << endl;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base2/50
1Wrong answer0/01ms500 KiB
2Time limit exceeded0/0578ms2100 KiB
3Wrong answer0/11ms316 KiB
4Accepted1/11ms316 KiB
5Wrong answer0/11ms316 KiB
6Accepted1/11ms316 KiB
7Wrong answer0/11ms316 KiB
8Wrong answer0/114ms560 KiB
9Wrong answer0/114ms316 KiB
10Wrong answer0/213ms316 KiB
11Wrong answer0/213ms316 KiB
12Wrong answer0/213ms316 KiB
13Wrong answer0/2104ms500 KiB
14Wrong answer0/2104ms408 KiB
15Wrong answer0/2104ms316 KiB
16Wrong answer0/2104ms508 KiB
17Wrong answer0/2104ms316 KiB
18Wrong answer0/2104ms416 KiB
19Wrong answer0/2104ms500 KiB
20Wrong answer0/2104ms316 KiB
21Wrong answer0/1104ms316 KiB
22Time limit exceeded0/2577ms1588 KiB
23Time limit exceeded0/2598ms1688 KiB
24Time limit exceeded0/2600ms2064 KiB
25Time limit exceeded0/2580ms2100 KiB
26Time limit exceeded0/2584ms2100 KiB
27Time limit exceeded0/2600ms1260 KiB
28Time limit exceeded0/2598ms1844 KiB
29Time limit exceeded0/2580ms1588 KiB
30Time limit exceeded0/2586ms2292 KiB
31Time limit exceeded0/2600ms2012 KiB