제출 #1197776

#제출 시각아이디문제언어결과실행 시간메모리
1197776aarb_.tomatexdBoat (APIO16_boat)C++20
0 / 100
2094 ms440 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false); cin.tie(nullptr);
    int n;
    cin >> n;
    vector<pair<int, int>> range(n);
    for (int i = 0; i < n; ++i)
        cin >> range[i].first >> range[i].second;

    int total = 0;
    for (int mask = 1; mask < (1 << n); ++mask) {
        vector<int> idx;
        for (int i = 0; i < n; ++i)
            if (mask & (1 << i))
                idx.push_back(i);

        int count = 1;
        int prev_max = range[idx[0]].second;
        int ways = 0;

        // Brute-force all valid increasing assignments
        function<void(int, int)> dfs = [&](int pos, int prev) {
            if (pos == idx.size()) {
                ways++;
                return;
            }
            int i = idx[pos];
            for (int val = range[i].first; val <= range[i].second; ++val) {
                if (val > prev)
                    dfs(pos + 1, val);
            }
        };

        dfs(0, -1);
        total += ways;
    }
    cout << total << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...