Submission #255320

#TimeUsernameProblemLanguageResultExecution timeMemory
255320model_codeCryptography (NOI20_crypto)C++17
100 / 100
440 ms42744 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; using stat_tree = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; struct result_t{ stat_tree* tree; int ans; int fact; }; constexpr int MOD = 1'000'000'007; result_t solve(int n){ if(n == 0) return {new stat_tree, 0, 1}; int curr; cin>>curr; result_t res = solve(n - 1); int index = res.tree->order_of_key(curr); res.tree->insert(curr); res.ans = (int)((res.ans + (long long)index * res.fact) % MOD); res.fact = (int)((long long)res.fact * n % MOD); return res; } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n; cin>>n; cout<<(solve(n).ans + 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...