Submission #861257

#TimeUsernameProblemLanguageResultExecution timeMemory
861257IrateCryptography (NOI20_crypto)C++14
25 / 100
25 ms5604 KiB
#include<bits/stdc++.h> using namespace std; const int MOD = 1e9 + 7; const int mxN = 3e5 + 5; int fact[mxN]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<int>v(n); for(int i = 0;i < n;++i){ cin >> v[i]; } fact[0] = fact[1] = 1; for(int i = 2;i <= n;++i){ fact[i] = (long long)fact[i - 1] * i % MOD; } if(n >= 1 && n <= 8){ vector<int>cpy = v; sort(cpy.begin(), cpy.end()); int cnt = 1; do{ bool check = 1; for(int i = 0;i < n;++i){ if(cpy[i] != v[i]){ check = 0; break; } } if(check){ cout << cnt; return 0; } cnt++; }while(next_permutation(cpy.begin(), cpy.end())); } if(v[1] == 1){ cout << (((long long)v[0] - 1) * fact[n - 1] % MOD + 1) % MOD; } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...