daily pastebin goal
13%
SHARE
TWEET

Untitled

a guest Mar 13th, 2018 52 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class tulipas {
  5.     public static int maxMudancas;
  6.     public static int minDestruidas;
  7.     public static void main(String []args){
  8.  
  9.         Scanner sc = new Scanner(System.in);
  10.         String str= sc.nextLine();
  11.  
  12.         String arrayStrings[]=str.split("\\s+");
  13.  
  14.  
  15.         maxMudancas=new Integer(arrayStrings[0]);
  16.  
  17.         ArrayList<Integer> ocorrencias = contaOcorrencias(arrayStrings[1]);
  18.         minDestruidas=ocorrencias.size();
  19.         //System.out.println("yo :" + (arrayStrings[1].charAt(0)-'0'));
  20.         funcao(maxMudancas,ocorrencias,0, (arrayStrings[1].charAt(0)-'0'),0);
  21.         funcao(maxMudancas,ocorrencias,1, (arrayStrings[1].charAt(0)-'0'),0);
  22.         System.out.println(minDestruidas);
  23.     }
  24.     public static int funcao(int mudancasLeft, ArrayList<Integer> numerosProcessar,int estado,int estadoString,int destruidas){
  25.  
  26.         ArrayList<Integer> auxNovosNumeros= new ArrayList<Integer>();
  27.  
  28.         if (mudancasLeft==0){
  29.             return 0;
  30.         }
  31.  
  32.         int novoEstadoString;
  33.         if (numerosProcessar.size()==0){
  34.             if (destruidas<minDestruidas){
  35.                 minDestruidas=destruidas;
  36.             }
  37.             return 0;
  38.         }
  39.         for(Integer intt : numerosProcessar){
  40.             auxNovosNumeros.add(intt);
  41.         }
  42.         auxNovosNumeros.remove(0);
  43.  
  44.         if (estadoString==0){
  45.             novoEstadoString=1;
  46.         }
  47.         else {
  48.             novoEstadoString=0;
  49.         }
  50.  
  51.  
  52.         int novasMortas=0;
  53.  
  54.         if (estado==estadoString){
  55.             novasMortas=destruidas;
  56.  
  57.             if (estado==0){
  58.                 funcao(mudancasLeft,auxNovosNumeros,0,novoEstadoString,novasMortas);
  59.                 funcao(mudancasLeft-1,auxNovosNumeros,1,novoEstadoString,novasMortas);
  60.             }
  61.             else {
  62.                 funcao(mudancasLeft,auxNovosNumeros,1,novoEstadoString,novasMortas);
  63.                 funcao(mudancasLeft-1,auxNovosNumeros,0,novoEstadoString,novasMortas);
  64.             }
  65.  
  66.  
  67.         }
  68.         else {
  69.             novasMortas=numerosProcessar.get(0)+destruidas;
  70.  
  71.             if (estado==0){
  72.                 funcao(mudancasLeft,auxNovosNumeros,0,novoEstadoString,novasMortas);
  73.                 funcao(mudancasLeft-1,auxNovosNumeros,1,novoEstadoString,novasMortas);
  74.             }
  75.             else {
  76.                 funcao(mudancasLeft,auxNovosNumeros,1,novoEstadoString,novasMortas);
  77.                 funcao(mudancasLeft-1,auxNovosNumeros,0,novoEstadoString,novasMortas);
  78.             }
  79.  
  80.         }
  81.  
  82.         return 0;
  83.     }
  84.     public static ArrayList<Integer> contaOcorrencias(String tulipas){
  85.         ArrayList<Integer> ocorrencias = new ArrayList<Integer>();
  86.         int contador=1;
  87.         for(int i=1;i<tulipas.length();i++){
  88.             if(tulipas.charAt(i)==tulipas.charAt(i-1)){
  89.                 contador++;
  90.             }
  91.             else{
  92.                 ocorrencias.add(contador);
  93.                 contador=1;
  94.             }
  95.         }
  96.         ocorrencias.add(contador);
  97.         return ocorrencias;
  98.     }
  99.  
  100.  
  101.  
  102. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top