chaemon

Results 12 comments of chaemon

Could you confirm me? https://forum.nim-lang.org/profile/chaemon

> > Could you confirm me? > > Done. Thanks! I posted the first topic. https://forum.nim-lang.org/t/6502

実は前のバージョンではsetterという機能がありまして、例えばC++でgenerateして、その後で問題のディレクトリで atcoder-tools set --lang ruby とやると、その問題だけ言語設定がrubyになる(rubyでのcodegenももう一回動かす)というのがあって、submitの際もrubyでsubmitできるというのがあるんですが、これがあると解決しますか?

https://github.com/kyuridenamida/atcoder-tools/pull/249 プルリク出しました!ローカルでは動いているようです。マージされるまでに使いたい場合はこちらのリクエスト元のものをcloneするとすぐ使えるかもです!(この場合、サポートはありません) https://github.com/chaemon/atcoder-tools/tree/setter ちょっと使いにくいかも、、、とも思っていて、使ってみた感想もありましたらお聞かせください。反映できるかもです。

特殊ジャッジには以下の3つの形態がありそうです。 1. 小数の出力で誤差を許容 2. 複数解のうち1つを出力すればOK 3. インタラクティブ問題 1については問題文から許容誤差と絶対誤差・相対誤差のどちら(あるいは両方)を容認するかを抽出した上で、できれば出力形式も抽出して、小数表示のところは許容誤差内にあるかジャッジすることになると思います。 2, 3については判定スクリプトをユーザーに書いてもらって、そのスクリプトを走らせた結果で正解を判定することになると思います。2. の場合は判定スクリプト関数などでコードに埋め込んだ方が使いやすいかもです。その場合は、標準エラー出力かメイン関数の戻り値などで正解を判定することになります。 3. の判定スクリプトは場合によってはatcoderジャッジサーバーが用意したものを再現するのが困難(もしかすると元の問題を解くより難しくなるかも)なので、あまり需要がないかもです。 以上から、 - どの形態のジャッジなのか(通常、小数、複数解、インタラクティブ) - 複数解、インタラクティブの場合はジャッジスクリプトの名前や仕様はどうするか? を考える必要があります。ひとまず書いてみてもいいんですかね?

ひとまず、浮動小数対応バージョンを作りたいのですが、各問題のディレクトリに.configみたいなファイルを作成してそこにジャッジタイプ(通常、小数、複数解、インタラクティブ)のどれかを記述するという仕様でいかがでしょう?

おぉーありましたか!気づかなかったです。あんまり意味ないですが、ジャッジタイプだけ抽出するっていうのやってみますかねー

はい!ちょうどそこを見ていました。 "judge_type":"normal" | "float" | "multiple" | "interactive" で"float"の場合は "error": "absolute" | "relative" "diff": "10^-??" みたいに記述されてる感じですね

複数解のジャッジとインタラクティブについて、ジャッジコードをユーザーに書いてもらってそれを使ってジャッジする方法を使っています。そこで、複数解・インタラクティブを検出したとき、あるいはatcoder-tools setで複数解・インタラクティブが選択されたときには以下のようなテンプレートも生成されるようにしたいと思っていますがいかがでしょうか?これはC++バージョンであり、他の言語のバージョンも追加していく予定です。 ```cpp /////////start template #include using namespace std; void quitAC(){ cerr

他は主にインタラクティブ用です。インタラクティブのみで必要なところに/* for interactive */をつけました。入出力するときにstderrにログを載せるようにすることで、ログファイルを生成するようにしました。本当はログファイル生成もatcoder-toolsでできればきれいですが、それが難しい(仲介スクリプトの作り方がわからない)ので、こうなっています。 したがって、現状ではインタラクティブ問題ではinput, output関数を通して入出力してほしいです。