Open TakefumiYamamura opened 8 years ago
時間制限 : 2sec / メモリ制限 : 256MB
N個の数からなる数列が与えられます。i番目の数をaiと呼びましょう。
al,al+1,…,ar が単調増加、すなわち l≦r であって ai<ai+1 がl≦i<r を満たす全てのiに対して成り立つような(l,r)の数を求めてください。
1≦N≦105 1≦ai≦105 aiは全て整数である 部分点
just doing Scepter taking method
#include <iostream>
#define ll long long
using namespace std;
int main(){
ll n;
ll a[1000001];
cin >> n;
for (ll i = 0; i < n; ++i)
{
cin >> a[i];
}
a[n] = -1;
ll l = 0;
ll ans = 0;
for (ll r = 0; r < n; ++r)
{
if(a[r] >= a[r+1]){
ans += (r-l+1) * (r-l+2) / 2;
l = r+1;
}
}
cout << ans << endl;
}
http://abc038.contest.atcoder.jp/