TCO R1Bは不参加。
ただ練習でEasy/MediumでWAを出したので、結果的に出なくて助かったかも。
http://community.topcoder.com/stat?c=problem_statement&pm=13715
問題
正整数の配列A[i]がある。
A[i]の連続部分列A[x..y]がValidであるとは、ある2以上の整数vについて、A[x..y]中にvの倍数であるものが半分以上含まれることを示す。
A[i]中で最長の連続部分列を求め、その長さを答えよ。
解法
A[i]はさほど大きくないので、x,y,vを総当たりすればよい。
vは素数でないものも総当たりしても間に合うようだ。
class TheNicePair { public: int solve(vector <int> A) { int i,j; int x,y,z; int ret=-1; for(i=2;i<=1000;i++) { FOR(y,A.size()) FOR(x,y+1) { int num=0; for(z=x;z<=y;z++) if(A[z]%i==0) num++; if(num>=(y-x+2)/2) ret=max(ret,(y-x)); } } return ret; } }
解法
奇数長の時に割り算を間違ってWAした…。