1. iwato

    Posted

    iwato
Changes in title
+AtCoder用_標準入力マクロ
Changes in tags
Changes in body
Source | HTML | Preview

概要

AtCoderにて毎回入力する内容を書くのが面倒臭いので、
変数名を指定すれば、入力読み取りしてくれるマクロを作りました。

数指定の入力

はじめに入力する数が指定され、その後指定された数だけ値が入力される場合


#define INPUT1(n, array)                                                           \
    int n;                                                                     \
    std::cin >> n;                                                             \
    std::vector<int> array(n);                                                     \
    for(int i = 0; i < n; i++) {                                               \
        std::cin >> a[i];                                                      \
    }

使い方

入力
5
1 2 3 4 5
#include <bits/stdc++.h>
using namespace std;

#define INPUT1(n, array)                                                           \
    int n;                                                                     \
    std::cin >> n;                                                             \
    std::vector<int> array(n);                                                     \
    for(int i = 0; i < n; i++) {                                               \
        std::cin >> a[i];                                                      \
    }

int main(){
 INPUT(num,array);//入力読み取り

 //読み取り内容確認
 cout << n << endll;
 for(const auto a : array){
  cout << a << endl;
 }

 return 0;
}

数指定の入力(二次元)

はじめに幅と高さが指定され、その後指定された数だけ値が入力される場合


#define INPUT2(x, y, field)                                                    \
    int x, y;                                                                  \
    std::cin >> x >> y;                                                        \
    std::vector<std::vector<int>> field(y, std::vector<int>(x));               \
    for(int i = 0; i < y; i++) {                                               \
        for(int j = 0; j < x; j++) {                                           \
            std::cin >> field[i][j];                                           \
        }                                                                      \
    }

使い方

入力
3 4
1 2 3
4 5 6
7 8 9
10 11 12
#include <bits/stdc++.h>
using namespace std;

#define INPUT2(x, y, field)                                                    \
    int x, y;                                                                  \
    std::cin >> x >> y;                                                        \
    std::vector<std::vector<int>> field(y, std::vector<int>(x));               \
    for(int i = 0; i < y; i++) {                                               \
        for(int j = 0; j < x; j++) {                                           \
            std::cin >> field[i][j];                                           \
        }                                                                      \
    }

int main(){
 INPUT2(x,y,field);//入力読み取り

 //読み取り内容確認
 cout << x << " " << y << endl;
 for(int i = 0; i < y; i++) {
        for(int j = 0; j < x; j++) {
          cout << field[i][j];
        }
      cout << endl;
    }

 return 0;
}