#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ld = long double; using pii = pair; #define FOR(k,m,n) for(ll (k)=(m);(k)<(n);(k)++) #define REP(i,n) FOR((i),0,(n)) #define WAITING(str) int str;std::cin>>str; #define DEBUGING(str) cout< x; //計算 void calc() { cin >> N >> D >> K; x.resize(N); REP(i, N) cin >> x[i]; pair res; ll best = -INF; using pll = pair; using pqp = priority_queue, greater>; pqp pq; pq.push({ x[0],0 }); FOR(i, 1, N) { while (pq.top().second < i - D)pq.pop(); auto benefit = x[i] - pq.top().first; if (benefit > best) { best = benefit; res = { pq.top().second,i }; } pq.push({ x[i],i }); } if (best <= 0)cout << 0 << endl; else { cout << best * K << endl; cout << res.first << " " << res.second << endl; } } //デバッグ void debug() { int N; cin>>N; } //メイン関数 int main() { calc(); debug(); return 0; }