Register
|
Login
Home
News
Competitions
Practice
How to
Rankings
Calendar
Arena
CodeFu 2007
CodeFu'07 Highlights
Jazoon'07 Highlights
Schedule
Rules
Prizes
Results
Competitions
»
Main CodeFu Competitons
»
CodeFu 2007
»
Results
CodeFu 2007 Results
CodeFu Final Round Results
ivan85mk's solution for 200: Consecutive Numbers, written in Java
import java.util.Arrays; public class ConsecutiveNumbers { int niza[]; int i, j, k, start, zeros, len, maxlen, prev, zerosst; public int longestSequence(int[] numbers) { niza=new int[numbers.length]; maxlen=-1; len=-1; for(i=0; i<numbers.length; i++) { niza[i]=numbers[i]; } Arrays.sort(niza); zeros=0; for(i=0; i<niza.length; i++) { if(niza[i]==0)zeros++; else break; } zerosst=zeros; start=zeros; len=0; for(j=start; j<niza.length; j++) { zeros=zerosst; len=1; for(i=j; i<niza.length; i++) { if(i!=j)prev=niza[i-1]; else if(i==j) { len=1; prev=niza[i]; continue; } if(prev!=-1) { if((niza[i]-prev)==1) { len+=1; prev=niza[i]; if(len>maxlen){maxlen=len; k=niza[i];} continue; } else if((niza[i]-prev-1)<=zeros) { zeros-=niza[i]-prev-1; len+=niza[i]-prev-1; prev=prev+(niza[i]-prev-1); if(len>maxlen)maxlen=len; continue; } else { if(zeros>0)len+=zeros; if(len>maxlen)maxlen=len; len=1; zeros=zerosst; break; } } } } System.out.println(k); return maxlen; } }