結果
問題 | No.489 株に挑戦 |
ユーザー |
![]() |
提出日時 | 2017-03-01 17:22:46 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 35 ms / 1,000 ms |
コード長 | 745 bytes |
コンパイル時間 | 1,919 ms |
コンパイル使用メモリ | 159,080 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-19 23:36:45 |
合計ジャッジ時間 | 3,452 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 35 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define INF 1000000000 #define REP(i,n) for(int (i)=0;(i)<(int)(n);(i)++) typedef long long LL; int N,D,K; int deq[100001]; LL x[100001]; int main(){ cin>>N>>D>>K; REP(i,N){ cin>>x[i]; } deq[0]=0; int bg=0; int ed=1; LL ans=0; int l,r; REP(i,N){ if(i==0)continue; while(ed>bg){ if(x[deq[ed-1]]<=x[i])break; ed--; } deq[ed]=i; ed++; if(ans<x[i]-x[deq[bg]]){ ans=x[i]-x[deq[bg]]; l=deq[bg];r=i; } if(i>=D){ if(i-D==deq[bg])bg++; } } cout<<ans*K<<endl; if(ans!=0){ cout<<l<<" "<<r<<endl; } return 0; }