CSES - Putka Open 2015 – finaali - Results
Submission details
Task:Sanat
Sender:adaisti
Submission time:2015-12-20 15:56:40 +0200
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.20 s0details

Code

import java.util.HashMap;
import java.util.Scanner;


public class Main {
    
    static char[] vokaalit = {'a', 'e', 'i', 'o', 'u', 'y'};
    static boolean sufTila = false;
    static char edellinenKonsonantti ='x';
    static char edellinenVokaali = 'y';
     
    public static void main(String[] args) {
        
        Scanner lukija = new Scanner(System.in);
        int maara = lukija.nextInt();
        
        
        for (int i = 0; i < maara; i++) {
            String sana = lukija.nextLine();
            System.out.println(kieli(sana));
        }
        
        
        
        
    }

    private static String kieli(String sana) {
        int j = sana.length();
        int vierasperaisia = 0;
        char[] vierasp = {'b', 'c', 'd', 'f', 'g', 'q', 'w', 'x', 'z'};
        
        for (int i = 0; i < sana.length(); i++) {
            
            for (int k = 0; k < vierasp.length; k++) {
                if (sana.charAt(i) == vierasp[k]|| sana.charAt(j)== vierasp[k]) {
                    vierasperaisia++;
                }
            }
            
            if (vierasperaisia > 2) {
                return "QAQ";
            }
            
            if (j < 5) {
                suffiksiautomaatti(j, sana.charAt(j));
            } else {
                if (sufTila == false) {
                    return "QAQ";
                }
            }
            
            
            
            
            j--;
        }
        
        return "10-4";
    }
    
    public static void suffiksiautomaatti(int j, char merkki) {
        if (j == 0) {
            sufTila = true;
        }
        
        if (sufTila == false) {
            return;
        }
        
        if (j == 1) {
            if (onVokaali(merkki)) {
                sufTila = true;
                edellinenVokaali = merkki;
            }
        }
        
        if (j == 2) {
            if (!onVokaali(merkki)) {
                sufTila = true;
                edellinenKonsonantti = merkki;
            }
        }
        
        if (j == 3) {
            if (merkki == edellinenKonsonantti) {
                sufTila = true;
            }
        }
        
        if (j == 4) {
            if (merkki == edellinenVokaali) {
                sufTila = true;
            }
        }
    }
    
    public static boolean onVokaali(char merkki) {
        for (int i = 0; i < vokaalit.length; i++) {
            if (merkki == vokaalit[i]) {
                return true;
            }
        }
        return false;
    }
    
}

Test details

Test 1

Verdict:

input
95000
pursua
zoomata
mantelilastu
jamming
...

correct output
10-4
10-4
10-4
QAQ
QAQ
...

user output
10-4

Error:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
	at java.lang.String.charAt(String.java:646)
	at Main.kieli(Main.java:37)
	at Main.main(Main.java:21)