CSES - Datatähti 2021 alku - Results
Submission details
Task:Alitaulukot
Sender:Anniiiz
Submission time:2020-09-30 17:36:17 +0300
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:33:22: error: 'valitsePienin' was not declared in this scope
             pienin = valitsePienin(joku);
                      ^~~~~~~~~~~~~
input/code.cpp:37:22: error: 'valitseSuurin' was not declared in this scope
             suurin = valitseSuurin(joku);
                      ^~~~~~~~~~~~~
input/code.cpp:46:14: error: expected ';' before numeric constant
         s ++ 1;
              ^
input/code.cpp:57:10: error: expected '(' before 'joku'
       if joku.size() > 1 {
          ^~~~
input/code.cpp:70:7: error: 'else' without a previous 'if'
       else {
       ^~~~
input/code.cpp:73:11: error: expected ';' before numeric constant
       s ++1;
           ^
input/code.cpp: In function 'int valitsePienin(std::vector<int>)':
input/code.cpp:82:3: error: 'pienin' was not declared in this scope
   pienin = lista[0];
   ^~~~~~
input/code.cpp:83:8: error: 'i' was not declared in this scope
   for (i = 1; i < lista.size(); i++) {...

Code

using namespace std;
#include<iostream>
#include<vector>
#include <stdlib.h>

int main() {
  int n, k;
  cin >> n >> k;
  vector<int> vektori;
  int x;
  while (cin >> x) {
    vektori.push_back (x);
  }
  int s = 0;
  int a = 0;
  int maara = 0;
  int pienin = vektori[0];
  int suurin = vektori[0];
  vector<int> joku = {vektori[0]};
  while (s < n - 1) {
    if (a != n - 1) {
      if (abs(suurin - vektori[a + 1]) <= k && abs(pienin - vektori[a + 1]) <= k) {
        a ++;
        joku.push_back(vektori[a]);
        suurin = max(suurin, vektori[a]);
        pienin = min(pienin, vektori[a]);
      }
      else {
        maara += joku.size();
        if (joku.size() > 1) {
          if (joku[0] == pienin) {
            joku.erase(joku.begin());
            pienin = valitsePienin(joku);
          }
          else if (joku[0] == suurin) {
            joku.erase(joku.begin());
            suurin = valitseSuurin(joku);
          }
          else {
            joku.erase(joku.begin());
          }
        }
        else {
          joku.erase(joku.begin());
        }
        s ++ 1;
        if (s > a) {
          joku.push_back(vektori[s]);
          pienin = vektori[s];
          suurin = vektori[s];
          a = s;
        }
      }
    }
    else {
      maara += joku.size();
      if joku.size() > 1 {
        if (joku[0] == pienin) {
          joku.erase(joku.begin());
          pienin = valitsePienin(joku);
        }
        else if (joku[0] == suurin) {
          joku.erase(joku.begin());
          suurin = valitseSuurin(joku);
        }
        else {
          joku.erase(joku.begin());
        }
      }
      else {
        joku.erase(joku.begin());
      }
      s ++1;
    }
  }
  maara++;
  cout << maara;
  return 0;
}

int valitsePienin(vector<int> lista) {
  pienin = lista[0];
  for (i = 1; i < lista.size(); i++) {
    pienin = min(pienin, lista[i]);
  return pienin;
  }
}


int valitseSuurin(vector<int> lista) {
  suurin = lista[0];
  for (i = 1; i < lista.size(); i++) {
    suurin = max(suurin, lista[i]);
  return suurin;
  }
}