結果

問題 No.489 株に挑戦
ユーザー dekueue
提出日時 2017-03-04 16:43:45
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 70 ms / 1,000 ms
コード長 816 bytes
コンパイル時間 1,034 ms
コンパイル使用メモリ 108,952 KB
実行使用メモリ 11,264 KB
最終ジャッジ日時 2024-07-19 23:40:59
合計ジャッジ時間 2,703 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 35
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<iostream>
#include<iomanip>
#include<stack>
#include<queue>
#include<numeric>
#include<algorithm>
#include<string>
#include<random>
#include<map>
#include<bitset>
#include<set>
#include<cmath>
#define int long long
const int inf=1145141919;
int mod;
const int dd[]={0,-1,0,1,0};
using namespace std;
int p[100000];
signed main(){
int n,d,k;
int i;
cin>>n>>d>>k;
d++;
for(i=0;i<n;i++)
cin>>p[i];
set<pair<int,int> > ki;
set<pair<int,int> >::iterator q[100000];
for(i=0;i<d;i++)
q[i]=ki.insert(make_pair(p[i],-i)).first;
int ans=0,u=0,v=0;
for(i=0;i<n;i++){
auto x=*rbegin(ki);
auto z=x.first-p[i];
if(z>ans){
ans=z;
u=i;
v=-x.second;
}
ki.erase(q[i]);
if(i<n-d)
q[i+d]=ki.insert(make_pair(p[i+d],-(i+d))).first;
}
cout<<ans*k<<endl;
if(ans)
cout<<u<<" "<<v<<endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0