scanf() 函数不会读取 '\r',因此若在读取整数之后再读一个字符,只可能有 ' ' 和 '\n' 两种可能,若为后者则说明当前行读入结束,即当前实验所需器材读入完了。
for (int i = 1, x, p; i <= n; ++i) {
scanf("%lld", &x);
sum += x;
add(0, i, x);
add(i, 0, 0);
char ch;
while (1) {
scanf("%lld%c", &p, &ch);
add(i, p + n, 1e9);
add(p + n, i, 0);
if (ch == '\n') {
break;
}
}
}