关于上传 Special Judge 和交互题的注意事项

wjyyy
队爷
2019-04-02 8:16:59 2019-04-02 9:24:30

spj 栗子:wjyyy 走路

交互题栗子:wjyyy 放鸽子

使用 spj 时,需要上传 spj_LANG.xxx 文件到测试数据下。其中 LANG 是语言简称,xxx 是其后缀,对照表如下:

语言 简称 后缀名
C c-noilinux .c
C++ cpp-noilinux .cpp
C++11 cpp11-noilinux
C(NOI) c-noilinux .c
C++(NOI) cpp-noilinux .cpp
C++11(NOI) cpp11-noilinux
C# csharp .cs
Java java .java
Pascal pascal .pas
Python2 python2 .py
Python3 python3
Node.js nodejs .js
Ruby ruby .rb
Haskell haskell .hs

在交互题中的 language 同样如此。

对于 spj,在 C++ 中,我们需要 <iostream><fstream> 两个头文件。

你可以使用 ifstream a("input") 来让 input 文件作为 a 的输入流。

a 中读入 x 的格式如下:a>>x;

然后把评测信息通过 cerr<<"评测信息" 输出至 stderr;把分数(百分比)通过 cout<<score 输出至 stdout

交互题同样可以通过把文件 input 导入输入流的形式处理,然后和被评测程序通过标准输入输出交互,每输出一行需要刷新缓存。

如果你使用 C++,可以用

fflush(stdout)cout.flush()cout<<endl 来刷新缓存;

如果你使用 Java,可以用

System.out.flush()

如果你使用 Pascal,可以用

flush(output)

如果你使用 Python,可以用

stdout.flush()

详见 Codeforces 交互题指南

如果不刷新缓存会导致 Time Limit Exceeded 等不可预料的后果。

其他详见 帮助

共 3 条回复

yclrz

orz wjyyy 大鸽鸽坠帮!

Sparky_14145
AFO

orz wjyyy ak ioi

Edgration

前排orz