Sad – Omówienie zadania

Szczegółowe omówienie zadania Sad:

Link do powyższego omówienia zadania Sad:
https://youtu.be/7Ap0B_C4T24?t=2783

Link do treści zadania Sad oraz możliwości umieszczania rozwiązań:
https://szkopul.edu.pl/problemset/problem/sad/site


Zadanie Sad pokazuje moc sum prefiksowych:
https://youtu.be/7Ap0B_C4T24?t=3553


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 przygotowujące do Olimpiady Informatycznej: https://oki.org.pl/harmonogram-zajec/

Warto startować w Olimpiadzie Informatycznej!
https://youtu.be/K7fZfJ8nN6A?t=109


Kod C++ programu Sad, który jest omówiony w powyższym video i który otrzymuje 100%


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

const int MAX_DNI = 2000010;
long long int wisnie_sumy_prefiksowe[MAX_DNI];

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

 int liczba_dni, liczba_pytan;
 int dzien_start, dzien_koniec, i;
 long long int zebrane_wisnie, ile_wisni_zebrano;

 cin >> liczba_dni;

 for (i=1; i<=liczba_dni; ++i) {
    cin >> zebrane_wisnie;
    wisnie_sumy_prefiksowe[i] = wisnie_sumy_prefiksowe[i-1] + zebrane_wisnie;
 }

 cin >> liczba_pytan;

 for (i=0; i<liczba_pytan; ++i) {
    cin >> dzien_start >> dzien_koniec;
    ile_wisni_zebrano = wisnie_sumy_prefiksowe[dzien_koniec] - wisnie_sumy_prefiksowe[dzien_start-1];
    cout << ile_wisni_zebrano << "\n";
 }

 return 0;
}
Kod C++ programu Sad, który jest omówiony w powyższym video i który otrzymuje 100%

Liczba komentarzy: 4

  • Dominik

    Czy w pythonie da się zrobić kod który będzie miał 100 pkt ?

      • Kasia

        Próbowałam i otrzymuję maksymalnie 40 punktów dla Pythona:
        n=int(input())
        D=tuple(map(int, input().split()))
        L=[0]*(n+1)
        for i in range(1,n+1):
        L[i]=L[i-1]+D[i-1]
        p=int(input())
        for i in range(p):
        (a,b)=tuple(map(int, input().split()))
        ile = L[b] – L[a-1];
        print(ile);

        Czas testów ustawiony jest na 4 sekundy (tak jak dla c++).

Dodaj komentarz