Submission #1102173
Source Code Expand
#include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #include<math.h> #include<string> #include<string.h> #include<stack> #include<queue> #include<vector> #include<utility> #include<set> #include<map> #include<stdlib.h> #include<iomanip> using namespace std; #define ll long long #define ld long double #define EPS 0.0000000001 #define INF 1e9 #define MOD 1000000007 #define rep(i,n) for(i=0;i<n;i++) #define loop(i,a,n) for(i=a;i<n;i++) #define all(in) in.begin(),in.end() #define shosu(x) fixed<<setprecision(x) typedef vector<int> vi; typedef pair<int,int> pii; int main(void) { int i,j,n; cin>>n; vi a(n),order(n); rep(i,n)cin>>a[i]; rep(i,n)order[a[i]-1]=i; set<int> st; st.insert(-1); st.insert(n); ll ans=0; rep(i,n){ set<int>::iterator itr=st.lower_bound(order[i]); ll right=(*itr)-order[i]; itr--; ll left=order[i]-(*itr); ll tmp=a[order[i]]*left*right; ans+=tmp; st.insert(order[i]); } cout<<ans<<endl; }
Submission Info
Submission Time | |
---|---|
Task | B - Minimum Sum |
User | rika0384 |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1048 Byte |
Status | AC |
Exec Time | 164 ms |
Memory | 11136 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0, example1, example2 |
All | corner0, corner1, corner2, corner3, example0, example1, example2, maxrand0, maxrand1, maxrand2, rand0, rand1, rand2 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
corner0 | AC | 139 ms | 11136 KB |
corner1 | AC | 141 ms | 11136 KB |
corner2 | AC | 3 ms | 256 KB |
corner3 | AC | 123 ms | 11136 KB |
example0 | AC | 3 ms | 256 KB |
example1 | AC | 3 ms | 256 KB |
example2 | AC | 3 ms | 256 KB |
maxrand0 | AC | 156 ms | 11136 KB |
maxrand1 | AC | 164 ms | 11136 KB |
maxrand2 | AC | 161 ms | 11136 KB |
rand0 | AC | 3 ms | 256 KB |
rand1 | AC | 3 ms | 256 KB |
rand2 | AC | 3 ms | 256 KB |