Taśma – Omówienie zadania z finału Olimpiady Informatycznej Gimnazjalistów

Szczegółowe omówienie zadania Taśma:

Link do powyższego omówienia zadania Taśma:
https://youtu.be/dtJ55y8e5LI?t=1391

——-
Link do treści zadania Taśma:
Zadanie Taśma pochodzi z finału 3 Olimpiady Informatycznej Gimnazjalistów – poprzednika Olimpiady Informatycznej Juniorów.
Link do wszystkich zadań z Olimpiady Informatycznej Juniorów:
Zadanie Taśma wymaga jedynie pomysłu – a właściwie prostych obserwacji. Pomimo, że jest z finału OIJ to jest bardzo proste i właściwie mogłoby by być na I / II etapie OIJ.
Jak się uczyć na podstawie tego zadania?
https://youtu.be/QgLyXYmFQeU?t=2019
——-

#include <bits/stdc++.h>
using namespace std;

const int MAX_LICZB = 1e5 + 7;
int liczby_na_tasmie [MAX_LICZB];

int main() {
 ios_base::sync_with_stdio(0);
 cin.tie(0);
 cout.tie(0);

 int ile_testow, ile_liczb_na_tasmie;
 int max_odleglosc, max_odleglosc_od_poczatku, max_odleglosc_od_konca;
 int numer_testu, i;

 cin >> ile_testow;

 for (numer_testu=1; numer_testu<=ile_testow; ++numer_testu) {
    cin >> ile_liczb_na_tasmie;
    for (i=1; i<=ile_liczb_na_tasmie; ++i)
       cin >> liczby_na_tasmie[i];

    max_odleglosc_od_konca = 0;
    for (i=1; i<=ile_liczb_na_tasmie; ++i) {
       if ( liczby_na_tasmie[i] != liczby_na_tasmie[ile_liczb_na_tasmie]) {
          max_odleglosc_od_konca = ile_liczb_na_tasmie - i;
		  break;	
	   }
	}

    max_odleglosc_od_poczatku = 0;
    for (i=ile_liczb_na_tasmie; i>=1; --i) {
       if ( liczby_na_tasmie[i] != liczby_na_tasmie[1]) {
          max_odleglosc_od_poczatku = i - 1;
		  break;	
	   }
	}

    max_odleglosc = max(max_odleglosc_od_poczatku, max_odleglosc_od_konca);
    if ( max_odleglosc == 0 )
	   cout << "BRAK\n"; 
	else
	   cout << max_odleglosc << "\n";    
 }

 return 0;
}
Kod C++ programu Taśma, który jest omówiony w powyższym filmie i który otrzymuje 100% 

 

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz