TEXT Submitting Solutions
前言
USACO 训练项目配备了一个自动评分系统,用于批改你的作业题目。你可以直接在题目页面提交你的程序;系统会对程序进行编译和评分,几秒钟内就能将结果反馈给你。
支持的语言有 C、C++(含 C++11 和 C++14)、PASCAL、Python2、Python3 以及 Java。这个系统使用 GNU GCC 编译套件来编译 C/C++ 程序,Free Pascal 系统编译 Pascal 程序,Java 则使用 Oracle 最新版本的编译器。
评分系统所用的编译器是之前 IOI(国际信息学奥林匹克)所使用的版本。
这些新版编译器使用 32 位整型;而 Borland 编译器使用的是 16 位整型。切记不要因为这点犯错!
你需要通过网页提交你的程序,在题目描述页面底部的“Submit a file:”框内输入你的源代码文件名即可。
程序提交时需要简单的头部注释:包含你的 ID(即你的 USACO 登录名)、程序名称(每个题目中都会给出),以及所用语言。下面是一些示例,供参考。
每个训练题目都有输入和输出文件。输入文件命名为 probname.in
(例如题目名为ride
,输入文件名就是 ride.in
),输出文件必须写入 probname.out
(即 ride.out
)。
第一个挑战
最简单的编程挑战名为 test
,需要你从输入文件 test.in
中读取一行的两个小整数,并将它们的和写入输出文件 test.out
。
下面是 C 语言的简单解法。注意通常需要用 exit(0); 正常退出程序。
/*
ID: your_id_here
LANG: C
TASK: test
*/
#include <stdio.h>
#include <stdlib.h>
void main () {FILE *fin = fopen ("test.in", "r");FILE *fout = fopen ("test.out", "w");int a, b;fscanf (fin, "%d %d", &a, &b); /* 读取两个整数 */fprintf (fout, "%d\n", a+b);exit (0);
}
下面是 C++ 语言的简单解法。注意通常用 return 0; 正常退出。
/* 请使用斜杠星号注释风格,否则系统无法识别你的身份信息 */
/*
ID: your_id_here
TASK: test
LANG: C++ // 也可以写成 C++11 或 C++14
*/
#include <iostream>
#include <fstream>using namespace std;int main() {ifstream fin("test.in");ofstream fout("test.out");int a, b;fin >> a >> b;fout << a + b << endl;return 0;
}
限制条件
- 运行时间限制 1 秒(具体题目可能不同),测试机为现代处理器,时间换算为 700MHz Pentium III。
- 数据大小约 16MB。
- 栈大小约 1MB。
- 程序必须正常退出,返回状态码 0。
- 输出必须是完整的一行,带换行符。
- 只能使用指定的输入、输出文件及辅助文件。
- 其他常识性规则。
规则
- 不允许作弊。
- 不能直接打印答案,必须通过程序计算。
- 不允许访问系统中的其他文件或使用非法手段。
- 不允许破坏隐私。
- 发现异常请立即报告(邮箱:rob.kolstad@gmail.com)。
- 尽情享受编程乐趣,争取参加 IOI 及其他顶级竞赛!