-
-
Save B1Z0N/0923c591a3b73ebc00eaeed099374fda to your computer and use it in GitHub Desktop.
Basic C++ Template for Competitive Programming
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
/* | |
___,,___ | |
,d8888888888b,_ | |
_,d889' 8888b, | |
_,d8888' 8888888b, | |
_,d8889' 888888888888b,_ | |
_,d8889' 888888889'688888, /b | |
_,d8889' 88888889' `6888d 6,_ | |
,d88886' _d888889' ,8d b888b, d\ | |
,d889'888, d8889' 8d 9888888Y ) | |
,d889' `88, ,d88' d8 `,88aa88 9 | |
d889' `88, ,88' `8b )88a88' | |
d88' `88 ,88 88 `8b,_ d888888 | |
d89 88, 88 d888b `88`_ 8888 | |
88 88b 88 d888888 8: (6`) 88') | |
88 8888b, 88 d888aaa8888, ` 'Y' | |
88b ,888888888888 `d88aa `88888b ,d8 | |
`88b ,88886 `88888888 d88a d8a88` `8/ | |
`q8b ,88'`888 `888'"`88 d8b d8888,` 88/ 9)_6 | |
88 ,88" `88 88p `88 d88888888888bd8( Z~/ | |
88b 8p 88 68' `88 88888888' `688889` | |
`88 8 `8 8, `88 888 `8888, `qp' | |
8 8, `q 8b `88 88" `888b | |
q8 8b "888 `8888' | |
"888 `q88b | |
"888' | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
Competitive programming template | |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ | |
/******** All Required Header Files ********/ | |
#include <iostream> | |
#include <string> | |
#include <vector> | |
#include <algorithm> | |
#include <sstream> | |
#include <queue> | |
#include <deque> | |
#include <bitset> | |
#include <iterator> | |
#include <list> | |
#include <stack> | |
#include <map> | |
#include <set> | |
#include <functional> | |
#include <numeric> | |
#include <utility> | |
#include <limits> | |
#include <time.h> | |
#include <math.h> | |
#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#include <assert.h> | |
using namespace std; | |
/******* All Required define Pre-Processors and typedef Constants *******/ | |
#define SCD(t) scanf("%d", &t) | |
#define SCLD(t) scanf("%ld", &t) | |
#define SCLLD(t) scanf("%lld", &t) | |
#define SCC(t) scanf("%c", &t) | |
#define SCS(t) scanf("%s", t) | |
#define SCF(t) scanf("%f", &t) | |
#define SCLF(t) scanf("%lf", &t) | |
#define MEM(a, b) memset(a, (b), sizeof(a)) | |
#define FOR(i, j, k, in) for (int i = j; i < k; i += in) | |
#define RFOR(i, j, k, in) for (int i = j; i >= k; i -= in) | |
#define REP(i, j) FOR(i, 0, j, 1) | |
#define RREP(i, j) RFOR(i, j, 0, 1) | |
#define all(cont) cont.begin(), cont.end() | |
#define rall(cont) cont.end(), cont.begin() | |
#define FOREACH(it, l) for (auto it = l.begin(); it != l.end(); it++) | |
#define IN(A, B, C) assert(B <= A && A <= C) | |
#define MP make_pair | |
#define PB push_back | |
#define INF (int)1e9 | |
#define EPS 1e-9 | |
#define PI 3.1415926535897932384626433832795 | |
#define MOD 1000000007 | |
#define read(type) readInt<type>() | |
const double pi = acos(-1.0); | |
typedef pair<int, int> PII; | |
typedef vector<int> VI; | |
typedef vector<string> VS; | |
typedef vector<PII> VII; | |
typedef vector<VI> VVI; | |
typedef map<int, int> MPII; | |
typedef set<int> SETI; | |
typedef multiset<int> MSETI; | |
typedef long int int32; | |
typedef unsigned long int uint32; | |
typedef long long int int64; | |
typedef unsigned long long int uint64; | |
/****** Template of some basic operations *****/ | |
template <typename T, typename U> inline void amin (T &x, U y) { if (y < x) x = y; } | |
template <typename T, typename U> inline void amax(T &x, U y) { if (x < y) x = y; } | |
/**********************************************/ | |
/****** Template of Fast I/O Methods *********/ | |
template <typename T> inline void write(T x) { | |
int i = 20; | |
char buf[21]; | |
// buf[10] = 0; | |
buf[20] = '\n'; | |
do { | |
buf[--i] = x % 10 + '0'; | |
x /= 10; | |
} while (x); | |
do { | |
putchar(buf[i]); | |
} while (buf[i++] != '\n'); | |
} | |
template <typename T> inline T readInt() { | |
T n = 0, s = 1; | |
char p = getchar(); | |
if (p == '-') | |
s = -1; | |
while ((p < '0' || p > '9') && p != EOF && p != '-') | |
p = getchar(); | |
if (p == '-') | |
s = -1, p = getchar(); | |
while (p >= '0' && p <= '9') | |
{ | |
n = (n << 3) + (n << 1) + (p - '0'); | |
p = getchar(); | |
} | |
return n * s; | |
} | |
/************************************/ | |
/******* Debugging Class Template *******/ | |
#define DEBUG | |
#ifdef DEBUG | |
#define debug(args...) (Debugger()), args | |
class Debugger { | |
bool first; | |
std::string separator; | |
public: | |
Debugger(const std::string &_separator = " - ") : first(true), separator(_separator) {} | |
template <typename ObjectType> | |
Debugger &operator,(const ObjectType &v) { | |
if (!first) std::cerr << separator; | |
std::cerr << v; | |
first = false; | |
return *this; | |
} | |
~Debugger() { | |
std::cerr << endl; | |
} | |
}; | |
#else | |
#define debug(args...) // Just strip off all debug tokens | |
#endif | |
/**************************************/ | |
/******** User-defined Function *******/ | |
/**************************************/ | |
/********** Main() function **********/ | |
int main() { | |
#ifndef ONLINE_JUDGE | |
freopen("input.txt", "r", stdin); | |
//freopen("output.txt","w",stdout); | |
#endif | |
int tc; | |
tc = read(int); | |
while (tc--) write(tc); | |
return 0; | |
} | |
/******** Main() Ends Here *************/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment