Submission #3457690
Source Code Expand
#include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <limits.h> #include <queue> #include <set> using namespace std; typedef long long ll; typedef unsigned long long ull; #define REP(i, n) for(int i=0; i<n; i++) int A[200100]; int index[200100]; int main(){ int N; cin >> N; ll ans = 0; REP(i,N){ int a; cin >> a; A[i] = a; a--; index[a] = i; } set<int> s; s.insert(N); s.insert(-1); REP(i,N){ int ind = index[i]; set<int>::iterator itr = s.lower_bound(ind); int right = *itr - ind; itr--; int left = ind - *itr; ans += A[ind]*left*right; s.insert(ind); } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Minimum Sum |
User | kurakura |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 818 Byte |
Status | WA |
Exec Time | 164 ms |
Memory | 11136 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 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 | WA | 162 ms | 11136 KB |
corner1 | WA | 164 ms | 11136 KB |
corner2 | AC | 1 ms | 256 KB |
corner3 | WA | 118 ms | 11136 KB |
example0 | AC | 1 ms | 256 KB |
example1 | AC | 1 ms | 256 KB |
example2 | AC | 1 ms | 256 KB |
maxrand0 | WA | 154 ms | 11136 KB |
maxrand1 | WA | 154 ms | 11136 KB |
maxrand2 | WA | 155 ms | 11136 KB |
rand0 | AC | 1 ms | 256 KB |
rand1 | AC | 1 ms | 256 KB |
rand2 | AC | 1 ms | 256 KB |