Created
March 3, 2019 07:19
-
-
Save wdsrocha/d3e79e4273773c46e5acdba9bb64b120 to your computer and use it in GitHub Desktop.
Base code used on codeforces rounds
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
#if DEBUG && !ONLINE_JUDGE | |
#define debug(args...) (Debugger()) , args | |
class Debugger { | |
public: | |
Debugger(const string sep = " | ") : first(1), sep(sep) {} | |
template <typename T> Debugger& operator , (const T& arg) { | |
if (first) first = false; | |
else cerr << sep; | |
cerr << arg; | |
return *this; | |
} | |
~Debugger() { cerr << endl; } | |
private: | |
bool first = true; | |
string sep; | |
}; | |
inline ostream& operator << (ostream& os, const string& data) { | |
os << "\'"; for (auto c : data) os << c; return os << "\'"; | |
} | |
template <typename T1, typename T2> | |
inline ostream& operator << (ostream& os, const pair <T1, T2>& data) { | |
return os << "(" << data.first << ", " << data.second << ")"; | |
} | |
template <typename T> | |
inline ostream& operator << (ostream& os, const vector <T>& data) { | |
os << "["; for (T value : data) os << value << ", "; return os << "\b\b]"; | |
} | |
template <typename T> | |
inline ostream& operator << (ostream& os, const set <T>& data) { | |
os << "{"; for (T value : data) os << value << ", "; return os << "}"; | |
} | |
template <typename T1, typename T2> | |
inline ostream &operator << (ostream& os, const map <T1, T2>& data) { | |
os << "{"; for (auto [key, item] : data) os << key << ": " << item << ", "; return os << "\b\b}"; | |
} | |
#else | |
#define debug(args...) | |
#endif | |
#define NAME(var) #var | |
#define int long long | |
#define ii pair <int, int> | |
#define st first | |
#define nd second | |
#define vi vector <int> | |
#define vii vector <ii> | |
#define vvi vector <vi> | |
#define vvii vector <vii> | |
#define pb push_back | |
#define eb emplace_back | |
#define oo (1000000000) | |
#define MOD (1000000007) | |
#define sz(x) ((int)((x).size())) | |
#define all(x) begin(x), end(x) | |
#define rall(x) rbegin(x), rend(x) | |
inline int fexp(int b, int e) { int x = 1; for (; e; e >>= 1, b = (b*b)%MOD) if (e&1) x = (x*b)%MOD; return x; } | |
signed main() { | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment