제출 #1172662

#제출 시각아이디문제언어결과실행 시간메모리
1172662NurislamNoM (RMI21_nom)C++20
9 / 100
1093 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back int inf = 1e18; const int mod = 1e9 + 7; //struct bitt { //vector<int> t; //int n; //bitt (int N) : n(N+1) { //t.resize(n+2); //}; //void upd(int i, int va) { i ++ ; //for(; i < n; i += (i & -i)) t[i] += va; //}; //int get(int i) { i ++ ; //int res = 0; //for(; i > 0; i -= (i & -i)) res += t[i]; //return res; //}; //int get(int l, int r) { r--; //return get(r ) - get( -- l ); //}; //}; void solve(){ int n, m; cin >> n >> m; vector<int> a(n*2); iota(a.begin(), a.end(), 0); for(int&i:a)if(i>=n)i-=n; sort(a.begin(),a.end()); int ans = 0; do{ bool ok = 1; vector<int> v(n, -1); for(int i = 0; i < n*2; i ++ ) { if(v[a[i]] == -1)v[a[i]] = i; else if((i - v[a[i]])%m == 0)ok = 0; } //for(int i : a) cout << i + 1 << ' '; //cout << '\n'; //cout << ok << '\n'; if(ok)ans = (ans + (1<<n)) %mod; }while(next_permutation(a.begin(), a.end())); cout << ans << '\n'; }; signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int tt = 1; //cin >> tt; while(tt -- ){ solve(); }; };
#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...