Solution for CCC '01 S1 - Keeping Score in Java 8


Nov. 30, 2019 0.627403 seconds Java 8
import java.io.*;
import java.util.*;

public class Main {
 
    public static void main(String args[]){
        
        Scanner in = new Scanner(System.in);
        
        String input = in.next();
        String clubs = "";
        String diamonds = "";
        String hearts = "";
        String spades = "";
        String temp = "";
        
        int clubLoc = 0, diamondLoc = 0, heartLoc = 0, spadeLoc = 0;
        int cp = 0, dp = 0, hp = 0, sp = 0, pAdded = 0;
        
        for(int i = 0; i < input.length(); i++){
            if(input.charAt(i) == 'C'){
                clubLoc = i;
                
            }else if(input.charAt(i) == 'D'){
                diamondLoc = i;
                
            } else if(input.charAt(i) == 'H'){
               
                heartLoc = i;
            } else if(input.charAt(i) == 'S'){
                spadeLoc = i;
                
            }
        }
         
                for(int f = 0; f < diamondLoc - clubLoc - 1; f++){
                    temp = Character.toString(input.charAt(f + clubLoc + 1)) + " ";
                  
                    if(!temp.equals("C") && !temp.equals("D") && !temp.equals("H") && !temp.equals("S")){
                       clubs += temp; 
                       cp += pointDet(temp);
                    }
                }
                    
                    for(int f = 0; f < heartLoc - diamondLoc - 1; f++){
                        
                        temp = Character.toString(input.charAt(f + diamondLoc + 1)) + " ";
                  
                        if(!temp.equals("C") && !temp.equals("D") && !temp.equals("H") && !temp.equals("S")){
                            dp += pointDet(temp);
                            diamonds += temp;
                        }
                 
                }
                  
                    for(int f = 0; f < spadeLoc - heartLoc - 1; f++){
                    
                        temp = Character.toString(input.charAt(f + heartLoc + 1)) + " ";
                        if(!temp.equals("C") && !temp.equals("D") && !temp.equals("H") && !temp.equals("S")){
                            hp += pointDet(temp);
                     hearts += temp;
                        }
                }
                    
                    for(int f = 0; f < input.length() - spadeLoc - 1; f++){
                       
                        temp = Character.toString(input.charAt(f + spadeLoc + 1)) + " ";
                        if(!temp.equals("C") && !temp.equals("D") && !temp.equals("H") && !temp.equals("S")){
                            spades += temp;
                            sp += pointDet(temp);
                            
                        }
           
                }
                    
                    
       cp += VSD(clubs);
       dp += VSD(diamonds);
       hp += VSD(hearts);
       sp += VSD(spades);
                    
        System.out.println("Cards Dealt\t\tPoints");
        System.out.println("Clubs " + clubs + "\t\t" + cp);
        System.out.println("Diamonds " + diamonds + "\t\t" + dp);
        System.out.println("Hearts " + hearts + "\t\t" + hp);
        System.out.println("Spades " + spades + "\t\t" + sp);
        System.out.println("\tTotal " + String.valueOf(cp + dp + hp + sp));
    
        }
       
        
        public static int pointDet(String input){
            char val = input.charAt(0);
            
            switch(val){
                
                case 'A':
                    return 4;
                case 'K':
                    return 3;
                case 'Q':
                    return 2;
                case 'J':
                    return 1;
            }
         return 0;
        }
        
        public static int VSD(String input){
            
            input = input.replaceAll("\\s", "");
            
            switch(input.length()){
                case 0:
                    return 3;
                case 1:
                    return 2;
                case 2:
                    return 1;
            }
            return 0;
        }
        
  
    
}

Editorial


No editorial for this problem. :(

Original Problem


You can view the original page for this problem on the DMOJ.