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