Cześć, przygotowując się do OIG postanowiłem rozwiązać zadanie link. Napisałem kod na 72 punkty, jednak nie mogę wyeliminować dwóch błędów, mianowicie:
0 wiersz 1: wczytano '1', a oczekiwano '2'
1a wiersz 1: wczytano '2', a oczekiwano '3'
2 wiersz 1: wczytano '13', a oczekiwano '38'
Proszę o wskazówki/poprawę mojego kodu, jestem dopiero początkującym w C++.
Kod:
#include <bits/stdc++.h>
using namespace std;
int t[1000007];
int n,k,wynik,dziewczynki,koniec,poczatek;
int main()
{
cin >> n >> k;
for(int i =0;i<n;i++){
cin >> t[i];}
poczatek = 1;
koniec = 1;
wynik = n + 1;
if(t[1]==0){
dziewczynki=1;}
else{
dziewczynki=0;}
while(koniec<n){
while(dziewczynki<k && poczatek<n){
poczatek ++;
if(t[poczatek]==0){
dziewczynki++;}}
if(dziewczynki==k){
wynik=min(wynik,poczatek-koniec+1);}
if(t[koniec]==0){
dziewczynki=dziewczynki-1;}
koniec++;}
if(wynik ==n+1){
cout << "NIE";}
else{
cout << wynik-k;
}
return 0;
}