赛码网在线编程系统使用指南
发布于 2017-03-16 17:35 82014 次浏览 4 赞 最后一次编辑是 2018-09-05 09:55 来自 我要提问  

一、注意事项:


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


四、编程题评测结果说明

评测结果缩写含义
QueuingQI提交太多了, 您的提交正处于排队状态。
CompilingCP您提交的代码正在被编译。
RunningRN您的程序正在运行。
JudgingJG我们 正在检查您程序的输出是否正确。
AcceptedAC您的程序是正确的 。
Presentation ErrorPE您的程序输出有格式问题,请检查是否多了或者少了空格 (' ')、制表符('\t')或者换行符('\n')
Wrong AnswerWA您的程序输出结果错误。
Runtime ErrorRE您的程序在运行时发生错误。
Time Limit ExceededTLE您的程序运行的时间已经超出了题目的时间限制。
Memory Limit ExceededMLE您的程序运行的内存已经超出了题目的内存限制。
Output Limit ExceededOLE您的程序输出内容太多,超过了这个题目的输出限制。
Compilation ErrorCE您的程序语法出现问题,编译器无法编译。
System ErrorSE评判系统内部出现错误 ,我们会尽快处理。
Out Of Contest TimeOCT考试已经结束,不再评测提交。


、练习才是成功的唯一路径

http://exercise.acmcoder.com/online/online_judge


30 条回复

编辑器的自动补全功能怎么关闭

2017-03-31 07:50
小码快跑 回复 acmcoderxLVxFnCb

同学你好,我向产品反馈一下

2017-03-31 09:22 1

编程题AC过,然后改了一下编译不通过,刚好时间到了,请问成绩是取最终结果还是最高通过率呢

2017-04-01 21:27
4

在线编程的提交记录,选择javascript就页面逃往火星。。。对javascript有偏见么

2017-04-02 17:33

请问用JavaScript答题如何读取两行?

2017-04-07 21:01

请问编程题通过100%和80%都是自动保存吗?需要手工点吗?= =

2017-04-07 23:02

京东的昨天的笔试题  

终结者C  链接:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=4401&konwledgeId=41


//京东实习17_2

#include<iostream>

#include<vector>

#include<string>

using namespace std;

int main()

int i,j,n,x,l,len,maxLen,temp1,temp2,temp3,temp4,sum=0;

cin>>n;

vector<int> nums;

int *v=new int[n];

for(i=0;i<n;i++)

v[i]=0;

for(i=0;i<n;i++)

{

cin>>x>>l;

nums.push_back(x);

nums.push_back(l);

}

vector<int> rs1;

vector<int> rs2;

for(i=0;i<nums.size();i+=2)

{

len=1;

temp1=nums[i];

temp2=nums[i+1]+nums[i];

rs1.erase(rs1.begin(),rs1.end());

rs1.push_back(i);

for(j=0;j<nums.size();j+=2)

{

temp3=nums[j];

temp4=nums[j+1]+nums[j];

if(temp3<=temp2&&temp4>=temp1)

{

if(j!=i)

{

len++;

rs1.push_back(j);

}

}

}

if(len>maxLen)

{

maxLen=len;

rs2=rs1;

}

}

sum+=maxLen;

maxLen=0;

for(i=0;i<rs2.size();i++)

v[rs2[i]/2]=1;

for(i=0;i<nums.size();i+=2)

{

if(v[i/2]==1)

continue;

len=1;

temp1=nums[i];

temp2=nums[i+1]+nums[i];

for(j=0;j<nums.size();j+=2)

{

if(v[j/2]==1)

continue;

temp3=nums[j];

temp4=nums[j+1]+nums[j];

if(temp3<=temp2&&temp4>=temp1)

{

if(j!=i)

len++;

}

}

if(len>maxLen)

{

maxLen=len;

}

}

sum+=maxLen;

cout<<sum<<endl;

return 0;

}

在自己电脑上面没错,

输入是

10
67 27
32 9
45 40
27 24
38 39
19 33
30 42
34 16
40 9
5 31

在自己电脑上运行结果是10,

在acmcoder上运行是:

都不知道这么大的一个数是怎么来的,输入一个其他的好像也有输出这个数,不知道是什么鬼? 上次头条笔试,考试都开始了,系统登录了半个小时没有登录进去,这次笔试又出现这种问题,真是坑爹啊。

2017-04-08 10:13
3

JS语言read_line()函数读到的数据被截断的问题能麻烦帮解决下不?被坑的不只我一个


http://discuss.acmcoder.com/topic/58e891c08083a7f20dd4b947

2017-04-08 15:39
2
提交都显示未通过,明明是正确答案,然后我复制了人家提交通过的正确答案,提交上去,还是显示未通过,这是什么原因,求解,很急,望回复,谢谢


2017-04-08 16:39
4

为什么找不到自己提交通过的代码?提交记录中显示有我的通过记录,但是没有任何途径能找到我提交的代码。正确答案中也找不到。

2017-04-11 11:02

OLE的同学都是什么情况 懵逼

2017-04-26 16:51

很想知道离开页面是怎么判断的,统考联盟和头条的笔试基本上是每隔三十秒就要提醒一次我离开页面了。今晚京东的笔试好担心在出现这样的情况。58同城不是用的赛马,笔试不到三分钟提醒我离开页面6六次,直接取消资格。离开页面到底是怎么判断的。谁能说一下。

2017-08-25 14:21
1

练习编程时怎么看到没有通过的测试用例???

2017-08-26 12:32
coder_GBZ5ERK5 回复 coder_MT7E8P6K

话题都被删了,额坑

2017-09-04 17:22

这个编程系统太烂了  吃了回扣吧,真是毁人不倦 python3 没有不说   还那么多限制

2018-04-19 20:34
9

java 由于包名导致的错误给个提示啊 ! !  说运行结果错误一直查代码   大坑

2018-07-08 17:41

快手内推名额有限,想加入我们的小伙伴要抓紧呀~安卓、ios、java、测试、前端等等,邮箱联系zhangjunjie@kuaishou.com 电话:13811512683

2018-08-06 11:07

你好,我想请问一下这个赛码网的编程通过率怎么算呢,是按照最后提交的代码来算,还是按照答题期间通过的最高通过百分比来算的?


2018-09-03 21:57
2

为啥不支持python3

2018-09-04 17:02
3

辣鸡编译器,不支持python3!!!误人子弟啊


2018-09-09 21:04
3

编程题是按照运行的通过率算么,如果代码已经写好了,但是没有来得及运行的怎么算呀

2018-09-09 21:14
1

我真的想吐槽,你们的官方说明竟然没有对编程题是按最高通过率还是按最新提交的来记分进行说明。

你们这网站槽点太多了,你们想从IT就业分一杯羹就好好做网站,随便做了个东西就给别人用,怎么跟牛客竞争?

2018-09-12 21:01
coder_DZ6Y5XUG 回复 coder_XXTAQAN7

你好,找到答案了吗?

2018-09-17 23:05

为什么不支持R预言,对R有偏见吗?

2018-09-28 18:25
coder_66Q3SM34 回复 coder_CZ9DH6PT

我靠!我也发现了

2018-10-08 09:47

不能使用python3啊  很焦灼!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2019-04-01 14:41

不能用python3的话为什么我在做笔试的时候还可以选择python3啊,全程没有调试信息

2019-04-08 21:26
1

所以编译环境没有Python3。。为什么说明里会有?

2019-04-11 14:43
1

提示数组越界是什么情况?

2019-04-11 17:08

说好的python3呢


2019-04-22 18:56
添加回复
回到顶部