This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pl = pair<ll,ll>;
using vi = vector<ll>;
using ml = map<ll,ll>;
const ll mod=1000000007;
#define pb push_back
#define forp(i,a,b) for(ll i=a;i<=b;i++)
#define forn(i,a,b) for(ll i=a;i>=b;i--)
#define read(a,n) forp(i,1,n){cin>>a[i];}
#define newl '\n'
#define form(m,it) for(auto it=m.begin();it!=m.end(); it++)
#define ff first
#define ss second
void solve(){
ll n; cin>>n;
ll p[n+1];
forp(i,1,n){
cin>>p[i];
}
ll fact[n+1]; fact[0]=1;
forp(i,1,n){
fact[i]=i*fact[i-1]; fact[i]%=mod;
}
ll a1,ans=0,c=0;
forp(i,1,n){
a1=1; c=0;
forp(j,i+1,n){
if(p[j]<p[i]){
c++;
}
}
a1*=c; a1%=mod;
a1*=fact[n-i]; a1%=mod;
ans+=a1; ans%=mod;
}
cout<<ans+1<<newl;
}
int main() {
clock_t start,end;
start=clock();
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// #ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin);
// freopen("output3.txt", "w", stdout);
// #endif
ll t=1;
//cin>>t;
while(t--){
solve();
}
end=clock();
//cout<<newl<<"Time : "<<double(end - start)/double(CLOCKS_PER_SEC)<<newl;
}
Compilation message (stderr)
Crypto.cpp: In function 'int main()':
Crypto.cpp:43:13: warning: variable 'start' set but not used [-Wunused-but-set-variable]
43 | clock_t start,end;
| ^~~~~
Crypto.cpp:43:19: warning: variable 'end' set but not used [-Wunused-but-set-variable]
43 | clock_t start,end;
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |