Submission #2242729
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int (i)=(0);(i)<(int)(n);++(i))
using ll = long long;
using P = pair<int, int>;
using namespace std;
template<class T> void vin(vector<T>& v, int n) {
v.resize(n);
for (int i = 0; i < n; ++i) {
cin >> v[i];
}
}
struct SegmentTree {
int n;
vector<int> node;
SegmentTree(vector<int> v) {
n = 1;
while (n < v.size()) n *= 2;
node.resize(2*n-1, INT_MAX);
for (int i=0; i<v.size(); ++i) node[i+n-1] = v[i];
for (int i=n-2; i>=0; --i) node[i] = min(node[i * 2 + 1], node[i * 2 + 2]);
}
SegmentTree(int N) {
n = 1;
while (n < N) n *= 2;
node.resize(2*n-1, INT_MAX);
}
// x番目の要素をvalに更新
void update(int x, int val) {
x += (n - 1);
node[x] = val;
while (x > 0) {
x = (x - 1) / 2;
node[x] = min(node[2 * x + 1], node[2 * x + 2]);
}
}
// [a, b)の中の要素の最小値を答える
// k := 自分がいるノードのインデックス
int query(int a, int b, int k=0, int l=0, int r=-1) {
if (r < 0) r = n;
if (r <= a || b <= l) return INT_MAX;
if (a <= l and r <= b) return node[k];
int vl = query(a, b, 2*k+1, l, (l+r)/2);
int vr = query(a, b, 2*k+2, (l+r)/2, r);
return min(vl, vr);
}
};
int main() {
int n;
cin >> n;
vector<int> v(n);
rep(i, n) cin >> v[i];
SegmentTree st(v);
ll ans = 0;
for (int l=0; l<n; ++l) {
for (int r=l; r<n; ++r) {
ans += st.query(l, r+1);
}
}
cout << ans << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
B - Minimum Sum |
User |
dsytk7 |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1760 Byte |
Status |
TLE |
Exec Time |
2103 ms |
Memory |
3840 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 |
TLE |
2103 ms |
3840 KB |
corner1 |
TLE |
2103 ms |
3840 KB |
corner2 |
AC |
1 ms |
256 KB |
corner3 |
TLE |
2103 ms |
3840 KB |
example0 |
AC |
1 ms |
256 KB |
example1 |
AC |
1 ms |
256 KB |
example2 |
AC |
1 ms |
256 KB |
maxrand0 |
TLE |
2103 ms |
3840 KB |
maxrand1 |
TLE |
2103 ms |
3840 KB |
maxrand2 |
TLE |
2103 ms |
3840 KB |
rand0 |
AC |
4 ms |
256 KB |
rand1 |
AC |
1 ms |
256 KB |
rand2 |
AC |
1 ms |
256 KB |