Skip to content

Instantly share code, notes, and snippets.

Avatar

Vasily Alferov vasalf

  • Saint Petersburg
View GitHub Profile
@vasalf
vasalf / split.cpp
Created Nov 27, 2018
Split with pairs
View split.cpp
/*
void split(node *v, int x, node *&l, node *&r) {
if (!v) {
l = r = nullptr;
return;
}
if (x < v->x) {
split(v->R, x, v->R, r);
l = v;
View BenchDFS.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import Algebra.Graph.AdjacencyMap
import Algebra.Graph.AdjacencyMap.Algorithm
import qualified Data.Map.Strict as Map
import qualified Data.Set as Set
@vasalf
vasalf / Loop.hs
Last active Aug 5, 2019
Loop monad for Haskell
View Loop.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UndecidableInstances #-}
module Loop where
import Prelude hiding (break)
@vasalf
vasalf / Main.hs
Created Aug 9, 2019
BenchStars.hs
View Main.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import Algebra.Graph.Bipartite.AdjacencyMap
import Control.Monad.Random
import Criterion.Main
import Control.Monad (foldM, replicateM)
import Data.Traversable (sequenceA)
@vasalf
vasalf / bash.md
Last active Sep 6, 2019
Кратко про bash
View bash.md

Краткий мануал по bash

NB: Это пересказ того, что было на паре, а на паре был очень краткий ликбез. Для полноты ощущений знаний рекомендуется пройти какой-нибудь более полный ликбез. Например, такой на двух языках висит в ссылках на вики в разделе «лекции».

Команды

Обычное соглашение про вызов команд в bash:

<команда> -<флаг> [значение] --<опция> [значение] <аргумент1> <аргумент2> ... <aргументN>
View 01_efficency.c
#include <stdio.h>
#include <string.h>
typedef struct {
int x;
float y;
char s[256];
} my_struct_t;
void f1(my_struct_t m) {
@vasalf
vasalf / practice.c
Created Oct 12, 2019
Практика 5': Упражнения на указатели
View practice.c
void task1() {
int x = 179;
int* p = &x;
int** n = malloc(sizeof(int*));
}
/*
Какой тип у выражений?
1. p
View 01_cli.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]) {
printf("argc: %d\n", argc);
for (int i = 0; i < argc; i++) {
printf("argv[%d]: %s\n", i, argv[i]);
}
printf("\n");
@vasalf
vasalf / expat.c
Created Oct 18, 2019
Практика 7
View expat.c
#include <stdio.h>
#include <stddef.h>
#include <expat.h>
#define UNUSED(x) (void)(x)
#ifdef XML_UNICODE_WCHAR_T
# include <wchar.h>
# define XML_FMT_STR "ls"
#else
@vasalf
vasalf / vector.cpp
Created Nov 8, 2019
Практика 8
View vector.cpp
#include "vector.h"
vector_int::vector_int() {
size_ = 0;
capacity_ = 16;
data_ = new int[capacity_];
}
void vector_int::reserve(size_t new_size) {
if (new_size <= capacity_)