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
nikuco's solution for 200: Consecutive Numbers, written in Java
import java.util.*; public class ConsecutiveNumbers { int kolku = 0; int brojam = 0; int[] niza; int l; int jok = 0; boolean debug = false; void rek(int baza, int jokeri, int brojce) { int broj = brojce; brojam++; String s = ""; // ok[baza] = false; //for (int i=0; i<l; i++) if (!ok[i]) s=s+niza[i]+" "; if (debug) System.out.println(broj+" > "+brojam); for (int i=baza+1; i<l; i++) { // if (ok[i]) // { int raz = niza[i]-broj; if (debug) System.out.println("Za "+niza[i]+" raz = "+raz); if (raz<=jokeri+1) { if (debug) System.out.println("ok"); rek(i, jokeri-raz+1, broj + raz); } // } } int rez = brojam+jok; if (kolku<rez) { if (debug) System.out.println("krajno: " + rez + " jok: "+jokeri); kolku=rez; } brojam--; } public int longestSequence(int[] numbers) { jok = 0; niza = new int[numbers.length]; Arrays.fill(niza, Integer.MAX_VALUE); int ind = 0; for (int i = 0; i<numbers.length; i++) { int broj = numbers[i]; if (broj!=0) niza[ind++] = broj; else jok++; } Arrays.sort(niza); l = ind; kolku = 0; for(int poc=0; poc < l; poc++) { //for (int i=0; i<l; i++) ok[i]=true; rek(poc, jok, niza[poc]); } return kolku; } }