How to Take Input in Competitive Programming


This guide shows how to read input using C++, C, Python and Java. We’ll use the following example problem:

Read an integer n, then read in n names. For each name, print Hello <name>!

C++

#include <iostream>
#include <string>
using namespace std;

int main() {
    int x;
    cin >> x;
    for (int i = 0; i < x; ++i) {
        string name;
        cin >> name;
        cout << "Hello " << name << "!" << '\n';
    }
    return 0;
}

C

#include <stdio.h>

int main() {
    int x;
    scanf("%d", &x);
    for (int i = 0; i < x; ++i) {
        char name[100]; // Ensure name array is large enough
        scanf("%s", name);
        printf("Hello %s!\n", name);
    }
    return 0;
}

Python (3.x)

a = int(input())
for i in range(a):
    z = input()
    print("Hello " + z + "!") # can also do print(f"Hello {z}!")

Additionally, if there are several space-separated integers in the input (e.g. 1 2 3 4), then you can extract it as follows:

nums = list(map(int, input().split()))
# Print the contents of nums:
for n in nums:
    print(n)

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        for (int i = 0; i < a; i++) {
            String name = sc.next();
            System.out.println("Hello " + name + "!");
        }
    }
}

Sample Input

3
Adelaide
Toronto
Singapore

Sample Output

Hello Adelaide!
Hello Toronto!
Hello Singapore!

You may output at any point of the program. Your full output will be compared against the expected output.

If you are reading this then send an image of a pufferfish in ACPC general chat with no context and you will be rewarded.