제출 #446198

#제출 시각아이디문제언어결과실행 시간메모리
446198Haruto810198Amusement Park (CEOI19_amusementpark)C++17
0 / 100
1 ms204 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define double long double #define FOR(i,l,r,d) for(int i=(l);i<=(r);i+=(d)) #define szof(x) ((int)(x).size()) #define vi vector<int> #define pii pair<int,int> #define F first #define S second #define pb push_back #define eb emplace_back #define mkp make_pair const int INF = 2147483647; const int LNF = INF*INF; const int MOD = 1000000007; const int mod = 998244353; const double eps = 1e-12; //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") int n, m; int edge[20][20]; vector<vi> per; /// permutations int solve(vi arr){ int ret = 0; int H[20]; FOR(i, 1, n, 1){ H[i] = arr[i-1]; } FOR(i, 1, n, 1){ FOR(j, 1, n, 1){ if(edge[i][j] == 1 and H[i] > H[j]){ ret++; } } } return ret; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; FOR(i, 1, n, 1){ FOR(j, 1, n, 1){ edge[i][j] = -1; } } FOR(i, 1, m, 1){ int u, v; cin>>u>>v; edge[u][v] = 0; edge[v][u] = 1; } vi arr; FOR(i, 1, n, 1){ arr.pb(i); } do{ per.pb(arr); }while( next_permutation(arr.begin(), arr.end()) ); int res = 0; for(vi arr : per){ res += solve(arr); } cout<<res<<'\n'; return 0; }
#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...