| 提出番号 | 1409 |
|---|---|
| 提出者 | square1001 |
| 言語 | C++ |
| 提出日時 | 2018-08-02 21:28:43 |
| 問題名 | (45)泥船 |
| 結果 | WA |
| 点数 | 0% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 2ms | 8400KB |
| 2 | AC | 100% | 2ms | 8736KB |
| 3 | WA | 0% | 38ms | 11984KB |
| 4 | AC | 100% | 31ms | 8400KB |
| 5 | AC | 100% | 36ms | 9264KB |
| 6 | WA | 0% | 34ms | 11392KB |
| 7 | AC | 100% | 38ms | 11024KB |
| 8 | WA | 0% | 40ms | 12416KB |
| 9 | AC | 100% | 36ms | 8112KB |
| 10 | WA | 0% | 41ms | 12432KB |
#include <iostream>
#include <algorithm>
using namespace std;
int n, s, p[100009]; long long v[100009], a[100009];
int main() {
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a[i + 1];
a[i + 1] *= -1;
a[i + 1] += a[i];
}
s = 1;
int ans = -1;
for (int i = 1; i <= n; ++i) {
int ptr = lower_bound(v, v + s, a[i]) - v;
if (ptr < s) ans = max(ans, i - p[ptr]);
if (v[s] < a[i]) {
v[s] = a[i];
p[s] = i;
++s;
}
}
cout << ans << '\n';
return 0;
}