0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロデルAdvent Calendar 2024

Day 9

AtCoderをプロデルで挑むチートシート

Last updated at Posted at 2024-12-09

TL;DR

AtCoderで頻出のフレーズをプロデルで実装するときのコード例です。

文法は Mopepe51さんの記事が丁寧で詳しいです。

整数Nを受け取る

【N:整数】
コンソールから受け取ってNとする

A1 A2 ⋯ AN

コンソールから受け取って「 」で区切って【A:整数の配列】とする

標準出力する

1を出力して改行する

代入と加減算

「増やす」「減らす」「代入する」を使うよりも数式の代入文を使う方が高速です。

【V:整数】=0
V=V+1
V=V-1

繰り返し

カウンタはi, j, kでもよいですが、木, 林, 森も見やすいと思います。

【木:整数】をLからRまで増やしながら繰り返す
  
繰り返し終わり

Q個与えられるので

【Q:整数】
コンソールから受け取ってQとする
Q回繰り返す
  コンソールから受け取って「 」で区切って【引数:整数の配列】とする
  
繰り返し終わり

二次元配列の初期化

//100×100の二次元配列の要素を確保する
【木:整数】を1から100まで増やしながら繰り返す
  平面(木,100)=0
繰り返し終わり

デバッグについて

AtCoderの判定システムやコードテストでは、コンパイル版が採用されています。コンパイル版の仕様によりコンパイルエラーや実行時エラーのエラーメッセージが理解しづらい場合があります。原因が特定できない場合には、文法に互換性があるスミレ畑でデバッグすることをお勧めします。スミレ畑でもコードテストと同様の機能が利用できます。

注意点

未サポートの文法

AtCoderで導入されているプロデルは、1.9.1182は、大幅改良した1.9.1210以降でサポートした次の文法をサポートしていません。

  • そして
  • もしの省略
  • 0を基にする添字#

パフォーマンス

AtCoderで導入されているプロデルは、次のパフォーマンス上の懸念があります。

  • 配列アクセスのパフォーマンスが悪いです。一般的な問題を解く場合には支障ありませんが、計算量が重要になる問題は注意しないとTLEで通過しない可能性があります
  • プラグインの読み込みのために実行時にも初期化におそらく100~200msほど掛かっています

既知のバグ

AtCoderで導入されているバージョンでは、次の機能がフルコンパイルに対応していため、実行できません。

文字列の~文字目

代わりに、取り出す手順を使います。

内容は「こんにちは プロデル」
内容の3文字目から1文字取り出して出力する

データ型の異なる数値の比較演算

データ型の異なる数値の比較が正しくできない場合があります。
「整数」名詞手順で型変換する必要がある場合があります。

【I:整数】=0
【F:浮動小数】=0
//もしI=Fなら「同じ」を出力する
もしI=Fの整数なら「同じ」を出力する

フィードバックについて

プロデルは、コミュニティが小さいので、バグフィックスが活発ではありません。バグなどお気づきの際は、具体的で建設的なフィードバックをお願いします。できる範囲で対応します。

またプロデルは、コンパイラ・開発環境・ドキュメント・ブログ記事をすべてワンオペで作業しています。また、一般のプログラミング言語にあるような、書籍の印税や記事執筆の報酬、アフィリエイト、スポンサーなどの収入は現在一切得ていません。ご利用はセルフサービスの精神でお願いいたします。

終わりに

パフォーマンスの懸念点などは、公式サイトで公開中の最新版で、改善しています。アップデートが適用されることを待つばかりです。

気がついたことがあれば加筆していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?