Szczegółowe omówienie zadania Count Distinct Slices:
Link do powyższego omówienia zadania Count Distinct Slices: https://youtu.be/TMgFEpTuBvQ?t=1577
Link do treści zadania Count Distinct Slices: https://app.codility.com/programmers/lessons/15-caterpillar_method/count_distinct_slices
Zadanie Count Distinct Slices pokazuje zastosowanie algorytmu gąsienicy: https://youtu.be/TMgFEpTuBvQ?t=5215
Algorytm gąsienicy – symulacja krok po kroku dla zadania Count Distinct Slices: https://youtu.be/TMgFEpTuBvQ?t=3940
Początek omówienia gąsienicy: https://youtu.be/TMgFEpTuBvQ?t=3058
Jak się uczyć na podstawie tego zadania? https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz: https://youtu.be/pkLXuuOe_qA?t=3625
Lista zadań z rozwiązaniami: https://oki.org.pl/lista-zadan-materialy.php
Samouczek – przygotowanie do Olimpiad: https://oki.org.pl/tutorial/
Zajęcia Olimpiada Informatyczna POZIOM II: https://oki.org.pl/olimpiada-informatyczna-poziom-ii/
Wszystkie zajęcia: https://oki.org.pl/harmonogram-zajec/
Informacje o zajęciach: https://oki.org.pl/newsletter.php
–
#include <iostream>
#include <vector>
using namespace std;
#define ll long long
//Funkcja do wklejenia na platformie Codility:
//https://app.codility.com/programmers/lessons/15-caterpillar_method/count_distinct_slices
int solution(int m, vector<int> &arr) {
vector<int> is_in_set(m+1, 0);
int n = arr.size();
int l = 0, r = -1;
ll res = 0;
while(r < n-1) {
r++;
while(is_in_set[arr[r]]) {
is_in_set[arr[l]] = 0;
l++;
}
is_in_set[arr[r]] = 1;
res += (r - l + 1);
}
if(res > 1e9) return 1e9;
return res;
}
//Funkcja main tylko i wylacznie do testow na wlasnym komputerze
//Jesli chcesz potestowac program na wlasnym komputerze odkomentuj ponizszego main-a
//Jesli chcesz wrzucic rozwiazanie na Codility to zostaw ZAKOMENTOWANY poinzszy fragment z main
/*
int main () {
int n; cin >> n;
vector<int> inp;
int m=0;
for (int i=0; i<n; ++i) {
int x; cin >> x;
inp.push_back(x);
m = max(m,x);
}
cout << solution (m, inp) << '\n';
return 0;
}
*/
Kod C++ programu "Count Distinct Slices", który jest omówiony w powyższym filmie i który otrzymuje 100%