Szczegółowe omówienie zadania Kreatywna Księgowość:
https://youtu.be/ysWHtsT96e0?t=1920
–
Zadanie pochodzi z obozu ONTAK 2010:
–
W rozwiązaniu użyto struktury / typu “set” języka C++który jest szczegółowo wyjaśniony w poniższym fragmencie:
W rozwiązaniu użyto struktury / typu “set” języka C++który jest szczegółowo wyjaśniony w poniższym fragmencie:
https://youtu.be/ysWHtsT96e0?t=8013
–
#include <bits/stdc++.h> using namespace std; const int MAX_DNI = 2e5+7; long long int sum_pref_modulo[MAX_DNI]; set reszty; int main() { int liczba_dni; long long int liczba_uczestnikow; long long int akt_reszta, max_reszta; long long int wydatek; set::iterator it; int i; cin >> liczba_dni; cin >> liczba_uczestnikow; for (i=1; i<=liczba_dni; ++i) { cin >> wydatek; sum_pref_modulo[i] = (sum_pref_modulo[i-1]+wydatek) % liczba_uczestnikow; sum_pref_modulo[i] = (sum_pref_modulo[i]+liczba_uczestnikow) % liczba_uczestnikow; } reszty.insert(0); max_reszta=0; for (i=1; i<=liczba_dni; ++i) { it = reszty.upper_bound(sum_pref_modulo[i]); if ( it != reszty.end() ) { akt_reszta = liczba_uczestnikow - ((*it)-sum_pref_modulo[i]); max_reszta = max (max_reszta, akt_reszta); } akt_reszta = sum_pref_modulo[i]; max_reszta = max (max_reszta, akt_reszta); reszty.insert(sum_pref_modulo[i]); } cout << max_reszta << "\n"; return 0; }