競プロでのテンプレ(20170205時点)
競プロのテンプレは本当に個性が出るところで、僕も昔はたくさん書いていたのだが、長らくrepとその他少しの定数ぐらいだった。
しかし、最近
scanf("%d",&n);
とタイプするのが苦手すぎて嫌気がさしてきたから入力を一部テンプレ化した。まぁテンプレなんていうのは気分の問題で書いても書かなくてもパフォーマンスほとんど変わらないんだけど気が向いただけ。
#include <bits/stdc++.h> #define rep(i,n) for(int i = 0; i < n; i++) #define rep1(i,n) for(int i = 1; i < n; i++) #define repv(i,n) for(int i = n-1; i >= 0; i--) #define EPS 1e-10 #define fi first #define sc second #define pb push_back using namespace std; typedef long long ll; char BUF[3500000]; inline void I(int&a){scanf("%d",&a);} inline void I(int&a,int&b){scanf("%d%d",&a,&b);} inline void I(int&a,int&b,int&c){scanf("%d%d%d",&a,&b,&c);} inline void I(int&a,int&b,int&c,int&d){scanf("%d%d%d%d",&a,&b,&c,&d);} inline void VI(vector<int>&v,int n){int t;rep(i,n){I(t);v.pb(t);}} inline void L(ll&a){scanf("%I64d",&a);} inline void L(ll&a,ll&b){scanf("%I64d%I64d",&a,&b);} inline void L(ll&a,ll&b,ll&c){scanf("%I64d%I64d%I64d",&a,&b,&c);} inline void L(ll&a,ll&b,ll&c,ll&d){scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d);} inline void VL(vector<ll>&v,int n){ll t;rep(i,n){L(t);v.pb(t);}} inline void S(string&str){str.clear();scanf("%s",BUF);int s=strlen(BUF);rep(i,s)str.pb(BUF[i]);} inline void SV(vector<int>&v){v.clear();scanf("%s",BUF);int s=strlen(BUF);rep(i,s)if('a'<=BUF[i]&&BUF[i]<='z')v.pb(BUF[i]-'a');else v.pb(BUF[i]-'A');} #define INF 100000000 #define MOD 1000000007 typedef pair<ll,ll> P; int n; int main(){ I(n); }
追記
このテンプレは以下の記事で早速更新されています。上記のままではAtcoderなどでうまく動きません*1。
gasin.hatenadiary.jp
*1:%I64dが機能しないため