最近在练习一些关于ACM的题,往往会有多组测试用例,不知道该怎么办,查找资料总结之。
C和C++:必须是 int main()提交,输入和输出的格式一定要按照题目要求的去写,否则提交不过。输入不可用文件输入。
Language |
C |
C++ |
To read numbers |
int n; while(scanf("%d", &n) != EOF) { ... } |
int n; while (cin >> n) { ... } |
To read characters |
int c; while ((c = getchar()) != EOF) { ... } |
char c; while (cin.get(c)) { ... } |
To read lines |
char line[1024]; while(gets(line)) { ... } |
string line; while (getline(cin, line)) { ... } |
Java:必须是public class Main提交,并且不能带包名,输入和输出的格式一定要按照题目要求的去写,否则提交不过。输入不可用文件输入。使用
Scanner sc=new Scanner(System.in);
1. 多组数据,每组数据一个n(5<= n <=10^6)。
接下来n个整数Xi (1<=Xi<=10^6)。
Sample Input
4
1 2 3 4
5
1 2 6 5 4
这种使用
while(sc.hasNext()){
n=sc.nextInt();
int a[]=new int [n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
}
2. 多组数据
input
5
20
30
40
每组是一个测试用例,
int n;
while(sc.hasNext()){
n=sc.nextInt();
}
3. 一个n,加上一个大小为n的数组
input
2
sdfgdsg
dgsfdg
使用:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0;i<n;i++){
String str = sc.next();
......
}
更详细的Java输入输出参考:http://blog.csdn.net/shijiebei2009/article/details/17305223
ACM输入输出--多组测试用例--C、C++、Java