Skip to content

Instantly share code, notes, and snippets.

View fabiogaluppo's full-sized avatar

Fabio Galuppo fabiogaluppo

View GitHub Profile
@fabiogaluppo
fabiogaluppo / _demo_generator.cpp
Created April 3, 2025 19:31
Fibonacci numbers with custom generator for C++20
//Source code C++ MasterClass (Algorithms with C++ MasterClass) by Fabio Galuppo
//C++ MasterClass - https://www.linkedin.com/company/cppmasterclass - https://cppmasterclass.com.br/
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//March 2025
//g++ -O3 -std=c++20 _demo_generator.cpp -o a.exe
//cl /Fo.\obj\ /EHsc /O2 /std:c++20 _demo_generator.cpp /link /out:a.exe
#include <iomanip>
#include <iostream>
@fabiogaluppo
fabiogaluppo / Generator.hpp
Last active April 3, 2025 18:18
Generator for lazy processing with C++20
//Source code C++ MasterClass (Algorithms with C++ MasterClass) by Fabio Galuppo
//C++ MasterClass - https://www.linkedin.com/company/cppmasterclass - https://cppmasterclass.com.br/
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//This file is licensed to you under the MIT license
//March 2025
//For C++ 20, in C++ 23 use std::generator instead: https://en.cppreference.com/w/cpp/coroutine/generator
#ifndef GENERATOR_HPP
#define GENERATOR_HPP
@fabiogaluppo
fabiogaluppo / istream_helper_util.t.cpp
Last active March 11, 2025 01:42
istream_helper_util usage samples
//Source code by Fabio Galuppo
//C++ MasterClass - https://www.linkedin.com/company/cppmasterclass - https://cppmasterclass.com.br/
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//March 2025
//g++ -O3 -std=c++20 istream_helper_util.t.cpp -o a.exe
#include "istream_helper_util.h"
#include <algorithm>
@fabiogaluppo
fabiogaluppo / istream_helper_util.h
Last active March 11, 2025 02:17
Helper functions for manipulating istreams (file, stdin, cin)
//Source code by Fabio Galuppo
//C++ MasterClass - https://www.linkedin.com/company/cppmasterclass - https://cppmasterclass.com.br/
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//March 2025
#ifndef ISTREAM_HELPER_UTIL_H
#define ISTREAM_HELPER_UTIL_H
#include <functional>
#include <istream>
//Source code SDL PPM P3 Viewer por Fabio Galuppo
//C++ MasterClass - https://www.linkedin.com/company/cppmasterclass - https://www.youtube.com/@CPPMasterClass
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//July 2024
#define SDL_MAIN_HANDLED
#include <SDL.h>
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
#Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
#1st version - Mar 2021
#2nd version - Feb 2024
import pygame
import os
import math
from datetime import datetime
def wallclock():
@fabiogaluppo
fabiogaluppo / registry.hpp
Created January 17, 2024 20:28
Registry data structure (inspired by Sean Parent's Better Code: Relationships)
//Source code do curso Algoritmos com C++ por Fabio Galuppo
//Ministrado em 2022 na Agit - https://www.agit.com.br/cursoalgoritmos.php
//Fabio Galuppo - http://member.acm.org/~fabiogaluppo - [email protected]
//Atualizado em 2024-01-17
//This file is licensed to you under the MIT license
//Ref.: https://sean-parent.stlab.cc/presentations/2021-03-13-relationships/2021-03-13-relationships.pdf
#ifndef REGISTRY_HPP
#define REGISTRY_HPP
@fabiogaluppo
fabiogaluppo / fnv1_bench.cpp
Last active August 11, 2023 22:09
FNV-64 fnv1 hash Quick C++ Benchmarks
//Quick C++ Benchmarks link: https://quick-bench.com/q/mvKK4FzyZGTNSFr5Qe6i1akzzro
#include <cstddef>
#include <unordered_map>
#include <string>
#include <utility>
static const std::uint64_t FNV1_64_INIT = 0xcbf29ce484222325ULL;
//FNV-1 hash
@fabiogaluppo
fabiogaluppo / webscraping_megasena.fs
Created April 25, 2021 23:25
Web Scraping "Mega Sena" with F# Data Providers
open FSharp.Data
[<Literal>]
let MegaSena_Url = "http://loterias.caixa.gov.br/wps/portal/loterias/landing/megasena/!ut/p/a1/04_Sj9CPykssy0xPLMnMz0vMAfGjzOLNDH0MPAzcDbwMPI0sDBxNXAOMwrzCjA0sjIEKIoEKnN0dPUzMfQwMDEwsjAw8XZw8XMwtfQ0MPM2I02-AAzgaENIfrh-FqsQ9wNnUwNHfxcnSwBgIDUyhCvA5EawAjxsKckMjDDI9FQE-F4ca/dl5/d5/L2dBISEvZ0FBIS9nQSEh/pw/Z7_HGK818G0K8DBC0QPVN93KQ10G1/res/id=historicoHTML/c=cacheLevelPage/=/"
type MegaSena_Results = HtmlProvider<MegaSena_Url, PreferOptionals=true>
let instanceMegaSena = MegaSena_Results.GetSample()
let data = instanceMegaSena.Tables.Table1
for x in data.Rows do
@fabiogaluppo
fabiogaluppo / coinsChange.py
Created April 29, 2020 14:25
Coin change problem in Python (Greedy and DP)
def greedyCoinsChange(A, C):
C.sort(reverse = True)
counter = 0
for c in C:
if (A > 0):
counter = counter + (A // c)
A = A % c
else:
break
return counter