Home ACM格式输入输出总结
Post
Cancel

ACM格式输入输出总结

Python

读取单个元素

1
2
t = input()      # 字符
t = int(input()) # 整数

读取单行元素

1
2
items = list(input().split(" "))           # 字符
items = list(map(int, input().split(" ")))  # 整数

确定数目行的元素

1
2
3
N = int(input())
for i in range(N):
    items = list(map(int, input().split(" ")))  # 整数为例

不定数目行的元素

1
2
3
4
5
while True:
    try:
        items = list(map(int, input().split(" ")))   # 整数为例
    except:
        break

C++

读取单个元素

1
2
3
4
5
int n;
cin >> n;

string s;
cin >> s;

读取单行元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 固定个数(2个)
int a, b;
cin >> a >> b;

// 每行第1个数字表示该行元素数目
int N, val;
cin >> N;
for (int i = 0; i < N; ++i) {
	cin >> val;
}

// 单行不定个数
int num;
while (cin >> num) {
	// do sth. with `num`
}

// 读取并解析以逗号分隔的单行,如`a,b,c`
string inp;
cin >> inp;  // 一整行字符串都已经读进来了
vector<string> vec;
string tmp_str;
for (auto c : inp) {
	if (c == ',') {
		vec.push_back(tmp_str);
		tmp_str.clear();
	}
	else {
		tmp_str += c;
	}
}
vec.push_back(tmp_str);

读取多行元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 确定行数
int N; // 行数
cin >> N;
for (int i = 0; i < N; ++i) {
    // 读取单行
}

// 不定行数,有文件结束标志行
while (true) {
    // 读取单行
    if (end_condition) break;
}

// 不定行数,每行第一个数是该行元素个数
int n, val;   
while (cin >> n) {  // 每行的第一个数
    for (int i = 0; i < n; ++i) {
        cin >> val;
    }
}

// 不定行数,自己判定每一行的结束位置
int num;
while (cin >> num) {
    // do sth. with `num`
    if (cin.get() == '\n') {
        // 每行末尾的操作
    }
}

一些需要注意的点

  • 输入输出中,元素的间隔符不一定是空格,还可能是‘,’等,要视题目为准。

参考

This post is licensed under CC BY 4.0 by the author.

Python的继承

部署经验总结