Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
Soluciones y Explicación de los problemas ACM ... - ICPC Bolivia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Explicaciones a <strong>los</strong> <strong>problemas</strong> South American Regionals 2008 68<br />
Programa Java que soluciona el problema<br />
import java.util.*;<br />
class polygons {<br />
public static void main(String[] args) {<br />
Scanner in = new Scanner(System.in);<br />
int N, i, totPer, verLen, j, arcLen, k;<br />
int[] X;<br />
boolean[] per;//imeter size<br />
boolean isPos = true;//ible<br />
while(true) {<br />
N = in.nextInt();<br />
if(N == 0) break;<br />
X = new int[N];<br />
totPer = 0;<br />
for(i = 0; i < N; i++) {<br />
X[i] = in.nextInt();<br />
totPer = totPer + X[i];<br />
}<br />
per = new boolean[totPer];<br />
Arrays.fill(per, false);<br />
verLen = 0;<br />
for(i = 0; i < N; i++) {<br />
per[verLen] = true;<br />
verLen = verLen + X[i];<br />
}<br />
FOR: for(i = N; i >= 3; i--) {<br />
if((totPer % i) == 0) {<br />
arcLen = totPer / i;<br />
for(j = 0; j < arcLen; j++) {<br />
isPos = true;<br />
k = j;<br />
while(k < totPer) {<br />
if(per[k] == false) isPos = false;<br />
k = k + arcLen;<br />
}<br />
if(isPos == true) break FOR;<br />
}<br />
}<br />
isPos = false;<br />
}//<br />
if(isPos == true) System.out.println(N - i);<br />
else System.out.println("-1");<br />
}<br />
}<br />
}