Submission #1440379
Source Code Expand
// This amazing code is by Eric Sunli Chen. #include <algorithm> #include <bitset> #include <cmath> #include <cstring> #include <cstdio> #include <cstdlib> #include <ctime> #include <iomanip> #include <iostream> #include <map> #include <queue> #include <set> #include <string> #include <utility> #include <vector> using namespace std; template<typename T> void get_int(T &x) { char t=getchar(); bool neg=false; x=0; for(; (t>'9'||t<'0')&&t!='-'; t=getchar()); if(t=='-')neg=true,t=getchar(); for(; t<='9'&&t>='0'; t=getchar())x=x*10+t-'0'; if(neg)x=-x; } template<typename T> void print_int(T x) { if(x<0)putchar('-'),x=-x; short a[20]= {},sz=0; while(x>0)a[sz++]=x%10,x/=10; if(sz==0)putchar('0'); for(int i=sz-1; i>=0; i--)putchar('0'+a[i]); } #define ff first #define ss second #define pb push_back #define mp make_pair #define get1(a) get_int(a) #define get2(a,b) get1(a),get1(b) #define get3(a,b,c) get1(a),get2(b,c) #define printendl(a) print_int(a),puts("") typedef long long LL; typedef unsigned long long uLL; typedef pair<int,int> pii; const int inf=0x3f3f3f3f; const LL Linf=1ll<<61; const double pi=acos(-1.0); int stk[200111],top,cnt[200111],a[200111],n; LL sum[200111],ans; int main() { get1(n); for(int i=1;i<=n;i++) { get1(a[i]); int all=1; while(top&&a[stk[top]]>=a[i]) { all+=cnt[top]; top--; } stk[++top]=i; cnt[top]=all; sum[top]=sum[top-1]+1ll*cnt[top]*a[i]; ans+=sum[top]; } printendl(ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Minimum Sum |
User | OhWeOnFire |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1538 Byte |
Status | AC |
Exec Time | 15 ms |
Memory | 4096 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 | 13 ms | 4096 KB |
corner1 | AC | 12 ms | 1024 KB |
corner2 | AC | 1 ms | 256 KB |
corner3 | AC | 14 ms | 2560 KB |
example0 | AC | 1 ms | 256 KB |
example1 | AC | 1 ms | 256 KB |
example2 | AC | 1 ms | 256 KB |
maxrand0 | AC | 14 ms | 1024 KB |
maxrand1 | AC | 14 ms | 1024 KB |
maxrand2 | AC | 15 ms | 1024 KB |
rand0 | AC | 1 ms | 256 KB |
rand1 | AC | 1 ms | 256 KB |
rand2 | AC | 1 ms | 256 KB |