読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Beta Round #36

implementation

はい。
http://codeforces.com/contest/36

A. Extra-terrestrial Intelligence

implementation

ざっくりと大意

・Vasyaは地球外から電波を受信していて、ノートに記録をとっている。
・受信した日は1、受信がなければ0。1の間隔が等しければ地球外に知的生命体がいる気がする。

方針のようなもの

・最初の受信前と最後の受信後は0がいくつでも関係ない様子。あくまでも1同士での間隔。
・先頭から1が初めて出るまで探す。見つかったらフラグ1にして次までのカウント開始。
・2回目出てきたらフラグを2にして間隔をチェック用に別の変数に保存して、ドンドン先に探しに行き間隔カウントを増やす。
・また1が見つかった時にチェック用の間隔と今回のカウントの間隔を比較。同じならカウントリセットでまた探しに、違ってれば強制終了で’NO'出力。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
import sys, io
import re, math
#start = time.clock()
sys.stdin=file('input.txt')
sys.stdout=file('output.txt','w')
n=sys.stdin.readline().strip()
l=sys.stdin.readline().strip()
flg,god,cnt=0,0,0
for i in range(int(n)-1):
    if l[i]=='1' and flg==0:
        flg+=1
    elif flg==1 and l[i]!='1':
        cnt+=1
    elif l[i]=='1' and flg==1:
        flg+=1
        god=cnt
        cnt=0
    elif flg==2 and l[i]=='1' and cnt==god:
        cnt=0
    elif flg==2 and l[i]=='0':
        cnt+=1
    elif flg==2 and l[i]=='1' and cnt!=god:
        print 'NO'
        sys.exit()
print 'YES'

方針上は通るはずだったのですが正確に書けずに何度も提出することに。。
sys.exit()使ってみた。便利かもしれない。

B. Fractal

implementation