Skip to content

Instantly share code, notes, and snippets.

@kkabdol
kkabdol / reference_counting_string.cpp
Last active January 18, 2017 08:37
Reference Counting
#include <iostream>
#include <cstring>
using namespace std;
template<class T>
class RCPtr {
public:
RCPtr(T* realPtr = 0);
RCPtr(const RCPtr& rhs);
~RCPtr();
@kkabdol
kkabdol / document.cpp
Last active February 8, 2017 06:59
Inheritance Is The Base Class of Evil
#include <iostream>
#include <vector>
#include <memory>
#include <algorithm>
#include <string>
#include <cassert>
using namespace std;
// library
@kkabdol
kkabdol / animal.cpp
Last active February 23, 2017 10:23
More Effective C++ Item 33: Make non-leaf classes abstract
// More Effective C++ Item 33: Make non-leaf classes abstrat
class AbstractAnimal {
protected:
AbstractAnimal& operator=(const AbstractAnimal& rhs);
public:
virtual ~AbstractAnimal() = 0; // This must be implemented
};
class Animal: public AbstractAnimal {
@kkabdol
kkabdol / CountingSheep.cpp
Last active March 6, 2017 09:49
Google Code Jam Qualification Round 2016 - Problem A. Counting Sheep
// Google Code Jam 2016
// Qualification Round
// Problem A. Counting Sheep
// https://code.google.com/codejam/contest/6254486/dashboard#s=p0
#include <iostream>
#include <istream>
#include <fstream>
#include <bitset>
@kkabdol
kkabdol / RevengeOfThePancakes.cpp
Created March 6, 2017 06:47
Google Code Jam Qualification Round 2016 - Problem B. Revenge of the Pancakes
// Google Code Jam 2016
// Qualification Round
// Problem B. Revenge of the Pancakes
// https://code.google.com/codejam/contest/6254486/dashboard#s=p1
#include <istream>
#include <fstream>
#include <string>
using namespace std;
@kkabdol
kkabdol / Fractiles.cpp
Created March 7, 2017 11:31
Google Code Jam Qualification Round 2016 - Problem D. Fractiles
// Google Code Jam 2016
// Qualification Round
// Problem D. Fractiles
// https://code.google.com/codejam/contest/6254486/dashboard#s=p3
#include <iostream>
#include <istream>
#include <fstream>
#include <bitset>
#include <vector>
@kkabdol
kkabdol / codingame_strike_back.cpp
Created March 29, 2017 08:25
Codingame Coders Strike Back - Bronze to Silver
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
#define PI 3.14159265
struct vec2 {
@kkabdol
kkabdol / codingame_snippets.cpp
Last active May 29, 2018 08:20
Code snippets for Codingame
#include <bits/stdc++.h>
//////////// cos sin //////////////
#include <cmath>
const double pi = std::acos(-1);
double cosByDegree( double degree )
{
const double radian = degree*pi/180.0;
return cos(radian);
@kkabdol
kkabdol / codingame_skynet-revolution-episode-1.cpp
Last active June 23, 2017 07:49
Codingame Skynet Revolution - Episode 1
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <cassert>
using namespace std;
// for optimization
@kkabdol
kkabdol / codingame_skynet-revolution-episode-2.cpp
Created May 25, 2017 08:45
Skynet Revolution - Episode 2
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <cassert>
using namespace std;
// for optimization