Submission #1184979

#TimeUsernameProblemLanguageResultExecution timeMemory
1184979UnforgettableplAmusement Park (CEOI19_amusementpark)C++20
19 / 100
60 ms4612 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int modulo = 998244353;
const int div2 = 499122177;

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,m;
    cin >> n >> m;
    vector<pair<int,int>> edges;
    for(int i=1;i<=m;i++){
        int a,b;
        cin >> a >> b;
        edges.emplace_back(a,b);
    }
    vector<int> perm(n+1);
    iota(perm.begin(),perm.end(),0);
    vector<int> answers;
    do {
        int mask = 0;
        for(int i=0;i<m;i++){
            if(perm[edges[i].first]<perm[edges[i].second])mask|=(1<<i);
        }
        answers.emplace_back(mask);
    } while(next_permutation(perm.begin()+1,perm.end()));
    int ans = 0;
    sort(answers.begin(),answers.end());
    answers.erase(unique(answers.begin(),answers.end()),answers.end());
    for(int&i:answers)ans+=__builtin_popcountll(i);
    cout << ans << '\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...
#Verdict Execution timeMemoryGrader output
Fetching results...