Submission #903575

#TimeUsernameProblemLanguageResultExecution timeMemory
903575pccCryptography (NOI20_crypto)C++14
100 / 100
401 ms21196 KiB
#include <bits/stdc++.h> #include <bits/extc++.h> using namespace __gnu_pbds; using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> st; const ll mod = 1e9+7; const ll mxn = 3e5+10; ll fac[mxn]; int arr[mxn]; inline ll mad(ll a,ll b){ a += b; return a>=mod?a-mod:a; } inline ll mub(ll a,ll b){ return mad(a,mod-b); } int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); fac[0] = 1; for(int i = 1;i<mxn;i++)fac[i] = fac[i-1]*i%mod; int N; cin>>N; for(int i = 1;i<=N;i++){ cin>>arr[i]; st.insert(arr[i]); } ll ans = 0; for(int i = 1;i<=N;i++){ ans = mad(ans,fac[N-i]*st.order_of_key(arr[i])%mod); st.erase(arr[i]); } cout<<mad(ans,1); }
#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...