제출 #1248565

#제출 시각아이디문제언어결과실행 시간메모리
1248565KindaGoodGamesAmusement Park (CEOI19_amusementpark)C++20
42 / 100
3092 ms227664 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long
#define pii pair<int,int>

int n,m;
int mod = 998244353; 
 

int32_t main(){
    cin >> n >> m;
    vector<pii> edges(m); 

    for(int i = 0; i < m; i++){
        int a,b;
        cin >> a >> b;
        a--;b--;
        edges[i] = {a,b};
    }
    int sum = 0;
    vector<int> perm(n);
    iota(perm.begin(),perm.end(), 0);

    map<int,int> val;
    do{
        vector<int> pos(n);
        int cur = 0;
        int v = 0;

        for(int i = 0; i < n; i++){
            pos[perm[i]] = i; 
        }

        for(int i = 0; i < m; i++){
            int a,b;
            tie(a,b) = edges[i];

            if(pos[a] > pos[b]){
                cur += (1LL << i);
                v++;
            }
        }
        val[cur] = v;
        
    }while(next_permutation(perm.begin(),perm.end()));
    

    for(auto p : val){
        sum += p.second;
    }

    cout << sum << endl; 
}
#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...