This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// Ali
// #pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define ins insert
#define pii pair<int,int>
#define pb push_back
#define endl '\n'
#define putr(x) cout<<x<<endl;return;
#define all(x) x.begin(),x.end()
const int mod = 1e6 +7, sze = 3e5+23, inf = 2e9, LG = 19,pr = 31;
void fast(){
/*
1 +
1 2 2 2 2 2 (n-1)*(n) /2 +
1 2 3 3 3 3 (n-2)*(n-1)/2 +
1 2 3 4 4 4 (n-3)*(n-2)/2 +
1 2 3 4 5 5 (n-4)*(n-3)/2 +
1 2 3 4 5 6 (n-5)*(n-4)/2
*/
int n;
cin>>n;
vector<int> arr(n);
int mx =0;
for(int i=0;i<n;i++){
cin>>arr[i];
mx=max(mx,arr[i]);
}
int ans=1;
for(int i =2;i<mx;i++){
ans= (ans + ((n-i +2)*(n-i +1)/2) %mod + mod)%mod;
}
// hojam (mx -1) zeminlendi
for(int i=0;i<n;i++){
if(arr[i]==mx){
int idx = i+1;
ans = (ans + (n - idx +1))%mod;
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int tt = 1;
// cin>>tt;
while(tt--){
fast();
}
return 0;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |