一、注意事项:
1. 本Online Judge系统是构建在Ubuntu 14.04 64位操作系统之上,所有文件名大小写敏感,在c/c++引用头文件时尤其需要注意。
2. 请不要自行输出提示信息,例如:printf("Please input two numbers: ")、raw_input('Please input two numbers: ')等等,这将会导致您的答案不正确,因为任何的输出到屏幕都会作为您答案的一部分。
3. Python使用的是2.7&3,缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用。
4. 本考试系统目前支持Java、Clang++、Clang、C++、C、PHP、C#、Python 2.7、JavaScript、Ruby、Bash、Obj-C、nodejs、Lua和Go语言。
5. 使用Java语言请注意,不要自定义包名称,否则会报错,即不要添加package answer之类的语句;您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public class,Main类的里面必须包含一个名字为'main'的静态方法(函数),这个方法是程序的入口。(具体可参见“编程样题”)。
6. 您的程序只能从标准输入(stdin,即“键盘”)读入,并输出到标准输出(stdout,即“屏幕”),不允许操作文件,否则将导致不正确的结果。请不要引用不必要的头文件或命名空间。
python特别说明:如果使用sys.stdin.readline,因为默认会带换行符,所以要strip('\n')进行截取;建议使用raw_input()。
7. 使用JavaScript(Google V8 Engine(6.2.340))语言请注意:作答时不要进行DOM相关操作。
读取size个字符:gets(size)
将读取至多size个字符,当还未达到size个时如果遇到回车或结束符,提前结束。回车符可能会包含在返回值中。
输出信息:printsth(sth, ...)
往控制台输出sth,当有多个参数时,空格分隔;最后不加回车。
输出一行:print(sth, ...)
往控制台输出sth,当有多个参数时,空格分隔;最后加回车。
读取一个(长)整数:readInt()
从控制台读取一个(长)整数。
读取一个浮点型:readDouble()
从控制台读取一个浮点型。
读取一行输入:read_line()
将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。回车符可能会包含在返回值中。
对js v8 shell读取有任何建设性意见,欢迎提出,可以git clone https://github.com/acmcodercom/v8/tree/forstdio_baseon_6.2.340/samples,欢迎issue、star、fork、pull request。
8. 使用Nodejs(v6.9.1)语言时请注意,请使用node-stdio模块进行输入输出,具体API见:https://www.npmjs.com/package/node-stdio,本地安装时需要node-gyp,当然,您也可以使用process.stdin、process.stdout或readline。
9. 系统对于每一道编程试题均提供实时评测结果(具体可参见“编程题评测结果说明”),您可在考试允许时间内多次提交您的代码以获得您所希望得到的结果,系统将以您的最后一次提交结果为准,但提交次数也将作为考试成绩的一部分。
10. 请严格依照题目描述的格式输入输出数据,尤其参照试题所提供的样例,当然试题的样例输入/输出并不代表评测试题的全部数据。
二、样例题目及程序
A + B
描述
给予两个整数 a 和 b ,计算它们的和 a + b
输入
输入包含多组测试数据,每一行包含两个整数 a 和 b
输出
在一行中输出 a + b 的值
C:
#include <stdio.h>
int main()
{
int a, b;
while(scanf("%d%d", &a, &b) != EOF)
printf("%d\n", a + b);
}
C++:
#include <iostream>
using namespace std;
int main()
{
int a, b;
while(cin>> a >> b)
cout << a + b << endl;
return 0;
}
Java:
//package main
//注意不要添加包名称,否则会报错。
import java.io.*;
import java.util.*;
class Test {
}
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
int a, b;
while(cin.hasNextInt())
{
a = cin.nextInt();
b = cin.nextInt();
System.out.println(a + b);
}
}
}
JavaScript:
var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=readInt())!=null && (b=readInt())!=null){
let c = solveMeFirst(a, b);
print(c);
}
C#:
using System;
class Program {
public static void Main() {
string line;
string []p;
int a,b;
while((line=Console.ReadLine())!=null){
p=line.Split(' ');
a=int.Parse(p[0]);b=int.Parse(p[1]);
Console.WriteLine(a+b);
}
}
}
Python:
#!/usr/bin/env python
# coding=utf-8
# Python使用的是2.7,缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用
while 1:
a=[]
s = raw_input()
# raw_input()里面不要有任何提示信息
if s != "":
for x in s.split():
a.append(int(x))
print sum(a)
else:
break
PHP:
< ?php
function solveMeFirst($a,$b){
return $a + $b;
}
$handle = fopen ("php://stdin","r");
$s = fgets($handle);
while ($s != "") {
$a = explode(" ", $s);
$sum = solveMeFirst((int)$a[0],(int)$a[1]);
print ($sum);
print ("\n");
$s = fgets($handle);
}
fclose($handle);
?>
Ruby:
a=gets
while a != nil && a != "" && a != "\r" && a != "\n" do
arr = a.split(" ")
sum = 0
arr.each_with_index do |value, index|
sum = sum + value.to_i
end
puts sum.to_s
a=gets
end
Bash:
#!/bin/bash
read -a arr
#echo ${#arr[@]}
while [ ${#arr[@]} -eq 2 ]
do
sum=$((${arr[0]}+${arr[1]}))
echo "$sum"
read -a arr
done
Obj-C:
#import <Foundation/Foundation.h>
int primeNumber(long int m)
{
int i;
for (i=2; i*i<=m; i++) {
if (m%i==0)
return 0;
}
return 1;
}
int main(int argc,char * argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int n,flag;
long int m;
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
[pool drain];
return 0;
}
NodeJS:
示例一(推荐):
var cmd = require('node-stdio')
var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=cmd.readInt())!=null && (b=cmd.readInt())!=null){
let c = solveMeFirst(a, b);
cmd.print(c);
}
示例二(nodejs自带stdio):
process.stdin.resume();
process.stdin.setEncoding('utf-8');
var input = "";
var input_array = "";
//这里不灵活,需要全部读取数据后再处理,容易超内存。
process.stdin.on('data', function (data) {
input += data;
});
var solveMeFirst = (a, b) => a+b;
process.stdin.on('end', function () {
let arr = input.split("\n");
for (var i=0; i<arr.length; i++) {
if (arr[i] != '') {
input_array = arr[i].split(" ");
let inline = 0;
let res;
let _a = parseInt(input_array[inline].trim(), 10);
inline += 1;
let _b = parseInt(input_array[inline].trim(), 10);
inline += 1;
res = solveMeFirst(_a, _b);
process.stdout.write("" + res + "\n");
}
}
});
示例三(nodejs自带readline):
var readline = require('readline');
process.stdin.setEncoding('utf-8');
var rl = readline.createInterface({input: process.stdin, output: process.stdout, prompt:''});
rl.prompt();
var solveMeFirst = (a, b) => a+b;
rl.on('line', function (data) {
let arr = data.split(' ');
if (arr && arr.length==2) {
let c = solveMeFirst(+arr[0], +arr[1]);
process.stdout.write('' + c + '\n');
}
});
Lua:
local count = 0
function string.split(str, delimiter)
if str==nil or str=='' or delimiter==nil then
return nil
end
local result = {}
for match in (str..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match)
end
return result
end
while true do
local line = io.read()
if line == nil or line == "" then break end
local tb = string.split(line, " ")
local sum = 0
for i=1, #tb do
local a = tonumber(tb[i])
sum = sum+a
end
if count>0 then
io.write("\n")
end
io.write(string.format("%d", sum))
count = count+1
end
Go:
package main
import "fmt"
import "io"
func main() {
a:=0
b:=0
for {
_, err := fmt.Scanf("%d%d",&a,&b)
if err == io.EOF {
break
} else {
fmt.Printf("%d\n",a+b)
}
}
}
三、编译器版本说明
语言 | 编译器版本 |
JAVA语言 | Javac 1.8.0_66 Java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode) |
Clang++/Clang语言 | Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4) |
C/C++语言 | gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04) |
PHP语言 | PHP 5.5.9-1ubuntu4.14 (cli) |
C#语言 | Mono C# compiler version 3.2.8.0 Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1) |
Python语言 | Python 2.7.6 |
Javascript语言 | Google V8 Engine |
Ruby语言 | ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] |
Bash语言 | GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) |
Obj-C语言 | 基于GNUstep |
nodejs语言 | v4.4.6 |
Lua语言 | Lua 5.3.2 |
Go语言 | go1.2.1 linux/amd64 |
四、编程题评测结果说明
评测结果 | 缩写 | 含义 |
Queuing | QI | 提交太多了, 您的提交正处于排队状态。 |
Compiling | CP | 您提交的代码正在被编译。 |
Running | RN | 您的程序正在运行。 |
Judging | JG | 我们 正在检查您程序的输出是否正确。 |
Accepted | AC | 您的程序是正确的 。 |
Presentation Error | PE | 您的程序输出有格式问题,请检查是否多了或者少了空格 (' ')、制表符('\t')或者换行符('\n') |
Wrong Answer | WA | 您的程序输出结果错误。 |
Runtime Error | RE | 您的程序在运行时发生错误。 |
Time Limit Exceeded | TLE | 您的程序运行的时间已经超出了题目的时间限制。 |
Memory Limit Exceeded | MLE | 您的程序运行的内存已经超出了题目的内存限制。 |
Output Limit Exceeded | OLE | 您的程序输出内容太多,超过了这个题目的输出限制。 |
Compilation Error | CE | 您的程序语法出现问题,编译器无法编译。 |
System Error | SE | 评判系统内部出现错误 ,我们会尽快处理。 |
Out Of Contest Time | OCT | 考试已经结束,不再评测提交。 |
五、练习才是成功的唯一路径
http://exercise.acmcoder.com/online/online_judge