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
BojanKostadinov's solution for 200: Consecutive Numbers, written in Java
import java.util.*; public class ConsecutiveNumbers { public int longestSequence(int[] numbers) { int best = 1, jokers = 0, old = 0, ok = 0, thistime; Arrays.sort(numbers); for (int i=0; i<numbers.length; i++) if (numbers[i] == 0) jokers++; for (int i=0; i<numbers.length; i++) for (int j=i+1; j<numbers.length; j++) { old = jokers; ok = 1; thistime = 0; ArrayList<Integer> al = new ArrayList<Integer>(); for (int k=i; k<=j; k++) if (numbers[k] != 0) al.add(new Integer(numbers[k])); Collections.sort(al); for (int p=0; p<al.size()-1; p++) if (al.get(p+1) <= al.get(p) +1+ jokers) { thistime+=al.get(p+1)-al.get(p)-1; jokers-=al.get(p+1)-al.get(p)-1; } else { ok = 0; break; } if (ok == 1) if (j-i+1+thistime > best) { best = j-i+1+thistime; } jokers = old; } return best; } }