Submission #702801

#TimeUsernameProblemLanguageResultExecution timeMemory
702801NursikNoM (RMI21_nom)C++14
0 / 100
1 ms212 KiB
#include <iostream> #include <fstream> #include <iomanip> #include <vector> #include <set> #include <map> #include <cstring> #include <string> #include <cmath> #include <cassert> #include <ctime> #include <algorithm> #include <sstream> #include <list> #include <queue> #include <deque> #include <stack> #include <cstdlib> #include <cstdio> #include <iterator> #include <functional> #include <unordered_set> #include <unordered_map> #include <stdio.h> #include <bitset> #include <cstdint> #include <cassert> #include <functional> #include <complex> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define f first #define s second #define ld long double const ll maxn = 1e3 + 10, maxm = 3e5 + 1; const ll mod = 1e9 + 7, cmod = 998244353, inf = 1e9, blcok = 400, p2 = 31; const ld eps = 1e-9; int n, m; int pos[maxn]; ll ans = 0; void rec(vector<int> v){ int sz = (int)v.size(); if (sz == n * 2){ int ok = 1; for (int i = 1; i <= n; ++i){ pos[i] = -1; } for (int i = 0; i < 2 * n; ++i){ if (pos[v[i]] != -1 && (i - pos[v[i]]) % m == 0){ ok = 0; } pos[v[i]] = i; } ans += ok; /* for (auto it : v){ cout << it << " "; } cout << '\n';*/ return; } int used[n + 1]; for (int i = 1; i <= n; ++i){ used[i] = 0; } for (auto it : v){ used[it] += 1; } for (int i = 1; i <= n; ++i){ if (used[i] + 1 <= 2){ v.pb(i); rec(v); v.pop_back(); } } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; vector<int> kek; rec(kek); cout << ans; } /* */
#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...