Submission #2873005
Source Code Expand
#include<iostream> #include<string> #include<algorithm> #include<cmath> #include<iomanip> #include<cstring> #include<map> #include<vector> #include<queue> #include<stack> #include<climits> #include<set> #include<utility> #include<typeinfo> using namespace std; typedef long long int ll; typedef pair<int, int> P; typedef set<int> S; #define rep(i, n) for(int i=0; i<n; i++) const ll MOD=1e9+7; int main(){ ll n, ans=0, a[200000], p[200000]; cin >> n; for(int i=0; i<n; i++){ cin >> a[i]; p[a[i]-1]=i; } set<int> s; s.insert(-1); s.insert(n); for(int i=0; i<n; i++){ set<int>::iterator it=s.lower_bound(p[i]); ll r=(*it)-p[i]; it--; ll l=p[i]-(*it); ans+=(i+1)*r*l; s.insert(p[i]); } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Minimum Sum |
User | tenkyu |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 790 Byte |
Status | AC |
Exec Time | 163 ms |
Memory | 12800 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 | 163 ms | 12800 KB |
corner1 | AC | 163 ms | 12800 KB |
corner2 | AC | 2 ms | 2304 KB |
corner3 | AC | 112 ms | 12800 KB |
example0 | AC | 1 ms | 256 KB |
example1 | AC | 1 ms | 256 KB |
example2 | AC | 1 ms | 256 KB |
maxrand0 | AC | 148 ms | 12800 KB |
maxrand1 | AC | 148 ms | 12800 KB |
maxrand2 | AC | 148 ms | 12800 KB |
rand0 | AC | 1 ms | 256 KB |
rand1 | AC | 2 ms | 2304 KB |
rand2 | AC | 1 ms | 2304 KB |