#include #define range(i,a,b) for(int i = (a); i < (b); i++) #define rep(i,b) for(int i = 0; i < (b); i++) #define all(a) (a).begin(), (a).end() #define show(x) cerr << #x << " = " << (x) << endl; #define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl; const int INF = 2000000000; using namespace std; int main(){ int n, d, k; int a[100005]; cin >> n >> d >> k; rep(i,n) cin >> a[i]; d++; set> s; int i = 0, dif = 0; int day[2]; rep(i,d){ int temp = a[i] - a[0]; if(temp > dif){ dif = temp; day[0] = 0; day[1] = i; } } range(i,n - d,n){ int temp = a[i] - a[n - d]; if(temp > dif){ dif = temp; day[0] = n - d - 1; day[1] = i; } } while(i != n){ while(s.size() != d){ s.insert(make_pair(a[i],i)); i++; } int temp = (--s.end())->first - a[i - s.size()]; //for(auto it:s){ cout << it.second<< endl; } //show(s.size()) show( s.begin()->first); show( (--s.end())->first); if(temp > dif){ dif = temp; day[0] = i - s.size(); day[1] = (--s.end())->second; } //show(a[i - d]) s.erase(s.find(make_pair(a[i - d], i - d))); } cout << dif * k << endl; if(dif * k > 0) cout << day[0] << ' ' << day[1] << endl; }