競技プログラマのためのC++作法

最近競技プログラミングを始める人が多いので、競技プログラミングにおけるC++の作法をまとめておこうと思います。
※この記事はネタです。注意してください。

#include <bits/stdc++.h>

すべての基本です。

using namespace std;

声に出して読んでみましょう。 古来から日本に伝わる美しいリズムを感じられると思います。

無駄なスペースは省く、大量のグローバル変数

コンテスト中は変数を宣言したりスペースをタイプしているヒマなんてありません。
使いそうな変数は全てあらかじめグローバルに宣言しておくとラクです。

使用例

int a,b,c,i,j,k,l,m,n,ans,tmp,hoge,fuga,piyo;
int x[10010],y[10010],d[110][110];
void solve(){
    for(k=0;k<n;k++){
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                if(d[i][j]>d[i][k]+d[k][j])d[i][j]=d[i][k]+d[k][j];
            }
        }
    }
}

マクロその1

マクロの基本中の基本です。
タイピング量を削減したりミスを減らしたりします。

使用例

#define fi first
#define se second
#define REP(i,n) for(int i=0;i<(n);i++)
using ll=long long;
using ii=pair<ll,ll>;

ll a,b,c,i,j,k,l,m,n,ans,tmp,hoge,fuga,piyo;
ii ps[10010];
int main(){
    cin>>n;
    REP(i,n)cin>>ps[i].fi>>ps[i].se;
}

マクロその2

既存の機能を上書きします。
エディタの一括変換などは使わずに、しっかりC++の機能を使いましょう。

使用例

#define int long long
#define endl "\n"
int a,b,c,i,j,k,l,m,n,ans,tmp,hoge,fuga,piyo;
signed main(){
    int a=1e18;
    cout<<a<<endl;
}

マクロその3

一流の競技プログラマーはtypoすら恐れません。
事前に想定済みです。

使用例

#define mian main
#define itn int
#define intt int
#define cotu cout
itn mian(){
    intt a=10;
    cotu<<a<<endl;
}

終わりに

他にも何かあったら教えてください。

僕は何を書いているんでしょうか……