//Author: Nathaniel Boisgard, 0025323 //Date: 11-11-2002 import java.io.*; import java.util.*; import eprog.*; public class Satz { public static final String buchstabenKlein="abcdefghijklmnopqrstuvwxyz"; public static final String buchstabenGross="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static final String sonderzeichen="();.,"; public static final char hochkomma='"'; public static int semikolonAnz=0; public static int counter=0; public static int tokenAnz=0; public static int klammernOffen=0; public static int hochkommaOffen=0; public Satz() { } public static void main(String[] args) { Satz spawn = new Satz(); String str = spawn.einlesen(); StringTokenizer st1; String token; boolean valid = false; if(str!=null) { st1=new StringTokenizer(str); tokenAnz=st1.countTokens(); while(st1.hasMoreTokens()) { token=st1.nextToken(); spawn.countSemikolon(token); spawn.countKlammern(token); counter++; if((spawn.zeichenTest(token))&&(spawn.wortTest(token))&&(semikolonAnz<2)) { valid=true; } else { valid=false; break; } } } if((valid)&&(klammernOffen==0)&&(hochkommaOffen%2==0)&&(tokenAnz<6)) { EprogIO.println("J"); } else { EprogIO.println("FALSCHE EINGABE"); } } public String einlesen() { String str; BufferedReader in; try { in=new BufferedReader(new InputStreamReader(System.in));; str=in.readLine(); } catch(IOException e) { str=null; } return(str); } public boolean isElement(char c, String in) { boolean valid=false; int i; for(i=0;i<in.length();i++) { if(c==in.charAt(i)) { valid=true; break; } } return(valid); } public boolean zeichenTest(String in) { Satz spawn = new Satz(); boolean valid=false; int i; for(i=0;i<in.length();i++) { if((spawn.isElement(in.charAt(i),buchstabenGross+buchstabenKlein+sonderzeichen))||(in.charAt(i)==hochkomma)){ valid=true; } else { valid=false; break; } } return(valid); } public boolean wortTest(String in) { Satz spawn = new Satz(); boolean valid1 = false; boolean valid2 = false; boolean valid3 = false; boolean valid4 = false; boolean valid5 = false; boolean valid6 = false; boolean valid7 = false; boolean valid8 = false; int i; int j=0; int b=0; try { for(i=0;i<in.length();i++) { if((in.charAt(i)=='(')||(in.charAt(i)=='"')) { j++; } else { break; } } if(j!=0) { in = in.substring(j,in.length()); } for(i=0;i<in.length()-2;i++) { if((in.charAt(i)==in.charAt(i+1))&&(in.charAt(i)==in.charAt(i+2))) { valid1=false; break; } else { valid1=true; } } for(i=1;i<in.length();i++) { if(spawn.isElement(in.charAt(i),buchstabenGross)) { valid2=false; break; } else { valid2=true; } } for(i=0;i<in.length()-1;i++) { if((in.charAt(i)==',')||(in.charAt(i)==';')||(in.charAt(i)=='.')) { valid3=false; break; } else { valid3=true; } } for(i=0;i<in.length()-1;i++) { if(in.charAt(i)=='(') { valid4=false; break; } else { valid4=true; } if((in.charAt(i)=='"')||(in.charAt(i)==')')) { if(spawn.isElement(in.charAt(i+1),buchstabenKlein+buchstabenGross)) { valid5=false; break; } else { valid5=true; } } else { valid5=true; } } if(counter==1) { if(spawn.isElement(in.charAt(0),buchstabenGross)) { valid6=true; } else { valid6=false; } } else { valid6=true; } if(counter==tokenAnz) { if(in.charAt(in.length()-1)=='.') { valid7=true; } else { valid7=false; } } else { valid7=true; } for(i=0;i<in.length();i++) { if(spawn.isElement(in.charAt(i),buchstabenGross+buchstabenKlein)) { b++; } } if(b<13) { valid8=true; } else { valid8=false; } if((valid1)&&(valid2)&&(valid3)&&(valid4)&&(valid5)&&(valid6)&&(valid7)&&(valid8)) { return(true); } else { return(false); } } catch(StringIndexOutOfBoundsException e) { return(false); } } public void countSemikolon(String in) { int i; for(i=0;i<in.length();i++) { if(in.charAt(i)==';') { semikolonAnz++; } } } public void countKlammern(String in) { int i; for(i=0;i<in.length();i++) { if(in.charAt(i)=='(') { klammernOffen++; } if(in.charAt(i)==')') { klammernOffen--; } } } public void countHochkomma(String in) { int i; for(i=0;i<in.length();i++) { if(in.charAt(i)=='"') { hochkommaOffen++; } } } }