#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 day1, day2; int linerSearch(int a[100005], int i, int d, int n){ int maxi = 0; range(j,i,min(i + d, n)){ if(maxi < a[j]){ day2 = j; maxi = a[j]; } } return maxi - a[i]; } int main(){ int n, d, k; int a[100005]; cin >> n >> d >> k; rep(i,n) cin >> a[i]; d++; int ans_day[2]; long long dif = 0; rep(i,n){ int temp = linerSearch(a,i,d,n); if(temp > dif){ dif = temp; ans_day[0] = i; ans_day[1] = day2; } } cout << dif * k << endl; if(dif * k > 0) cout << ans_day[0] << ' ' << ans_day[1] << endl; }