Submission #1210920

#TimeUsernameProblemLanguageResultExecution timeMemory
1210920loomCryptography (NOI20_crypto)C++20
35 / 100
175 ms23924 KiB
#include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include<bits/stdc++.h> using namespace std; #define int long long #define nl '\n' using namespace __gnu_pbds; template<class T> using indexed_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; const int mod = 1e9+7, N = 3e5; int p[N], fact[N]; inline void solve(){ int n; cin>>n; for(int i=0; i<n; i++) cin>>p[i]; fact[0] = 1; for(int i=1; i<n; i++) fact[i] = fact[i-1] * i % mod; indexed_set<int> st; for(int i=0; i<n; i++) st.insert(p[i]); int ans = 0; for(int i=0; i<n; i++){ ans += st.order_of_key(p[i]) * fact[n-i-1]; ans %= mod; st.erase(p[i]); } cout<<ans+1; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(NULL);cout.tie(NULL); int t = 1; //cin>>t; while(t--) solve(); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...