CSES - Datatähti 2021 alku - Results
Submission details
Task:Alitaulukot
Sender:shmoul
Submission time:2020-10-05 22:35:03 +0300
Language:C++17
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:23:13: warning: unused variable 'current' [-Wunused-variable]
         int current = nums[i];
             ^~~~~~~
input/code.cpp: In function 'void maxmin(int, int)':
input/code.cpp:41:16: error: 'INT_MIN' was not declared in this scope
     int tmax = INT_MIN;
                ^~~~~~~
input/code.cpp:41:16: note: suggested alternative: 'INT8_MIN'
     int tmax = INT_MIN;
                ^~~~~~~
                INT8_MIN
input/code.cpp:42:16: error: 'INT_MAX' was not declared in this scope
     int tmin = INT_MAX;
                ^~~~~~~
input/code.cpp:42:16: note: suggested alternative: 'INT8_MAX'
     int tmin = INT_MAX;
                ^~~~~~~
                INT8_MAX

Code

#include <iostream>
#include <string>
#include <algorithm>
int length;
int maxIndex;
int minIndex;
int max;
int min;
int* nums;
void maxmin(int start, int end); 
int main()
{
    int diff;
    std::cin >> length >> diff;
    nums = new int[length];
    int tablecount = length;
    for (int i = 0; i < length; i++)
    {
        std::cin >> nums[i];
    }
    for (int i = 0; i < length; i++)
    {
        int current = nums[i];
        for (int j = length-1; j > i; j--)
        {
            maxmin(i,j);
            int m1 = std::max(minIndex, maxIndex);
            if (max - min > diff)
            {
                j = m1;
                continue;
            }
            tablecount += j - i;
            j = m1;
        }
    }
    std::cout << tablecount;
}
void maxmin(int start, int end)
{
    int tmax = INT_MIN;
    int tmin = INT_MAX;
    int maxi = start;
    int mini = end;
    for (int i = start; i < end; i++)
    {
        if (nums[i] > tmax)
        {
            tmax = nums[i];
            maxi = i;
        }
        if (nums[i] < tmin)
        {
            tmin = nums[i];
            mini = i;
        }
    }
    max = tmax;
    min = tmin;
    maxIndex = maxi;
    minIndex = mini;
}