Cod sursa(job #3252630)

Utilizator tudordaianDaian Tudor tudordaian Data 30 octombrie 2024 13:01:09
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#define INF (long long)(1e18)

using namespace std;

ifstream cin("secv2.in");
ofstream cout("secv2.out");

int main()
{
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios_base::sync_with_stdio(NULL);
    int n, k;
    cin >> n >> k;
    
    long long dp[ 50005 ] = { 0 }; 
    int mdp[ 50005 ] = { 0 };
    for ( int i = 1; i <= n; ++i )
    {
    	cin >> dp[ i ];
    	dp[ i ] += dp[ i - 1 ];
    	if ( dp[ i ] < dp[ mdp[ i - 1 ] ] )
    		mdp[ i ] = i;
    	else
    		mdp[ i ] = mdp[ i - 1 ];
    }
    
    
    int st, dr;
    long long m = -INF;
    for ( int i = k; i <= n; i++ )
    {
        if ( dp[ i ] - dp[ mdp[ i - k ] ] > m )
        {
        	m = dp[ i ] - dp[ mdp[ i - k ] ];
        	st = mdp[ i - k ] + 1;
        	dr = i;
        }
    }
    cout << st << ' ' << dr << ' ' << m;
        return 0;
}