ShortCoding

ACPC2015Day3 F / AOJ 2763 - Miko Mi String

問題はこちら。入力文字列Sについて、長さをn、最小周期をpとします。 さらに、q=p*floor(n/(3*p)+1)とおきます。 このようにすると、 2*q<nであるときかつそのときに限り、題意を満たす文字列A,Bが存在し、さらに求めるべきABの長さはqとなる ということが容易に証明できます。以上の考察を基にコードを書くと次のようになります。 #include <stdio.h> #include <string.h> char s[1000010]; int mp[1000010]; int main(){ int i, n, t, p, q = 0; fgets(s, sizeof(s)…</string.h></nであるときかつそのときに限り、題意を満たす文字列a,bが存在し、さらに求めるべきabの長さはqとなる>

AOJ 0257 - Railway Ticket

ブログを1ヶ月以上放置していたので、久しぶりに投稿してみます。問題はAOJ 0257です。早速ですが、コードは以下のようになります。 a[];main(){read(0,a,5);*a=!puts(*a%3<1|a[1]&1?"Open":"Close");} 今回は、低レベルな入力関数であるreadにより入力を行…

AOJ 0503 - Cup (Part 2)

これの続きです。このコードを短縮します。まずは、配列pow3をわざわざ用意するのは長くなるので、毎回pow関数を使って値を求めることにします。 また、この問題の特徴として、#0と#2が入れ替わっても答えが変わらないことが挙げられます。そこで入力の際、#…

AOJの環境について

AOJ(Aizu Online Judge)の環境でC言語を使う場合のメモです。特にショートコーディング*1を行う場合、以下の点に注意する必要があります。なお、これらはあくまでショートコーディングを行うためのものであり、通常のプログラミングでは考慮する必要がない(…