import java.io.*;
import java.util.IllegalFormatException;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
public class Main{
public static void main(String[] args) throws FileNotFoundException, IOException {
TextIO.readStream(System.in);
List<City> arr=new LinkedList<City>();
int counter=0;
String m=" ";
while (true){
m=TextIO.getln();
if (m.charAt(0)=='e'){
System.out.println(cityNum(arr));
arr.clear();
counter=0;
continue;
}
if (m.charAt(0)=='#')
break;
arr.add(new City());
for(int i=0;i<m.length()-2;i++){
if(m.charAt(i)=='r'){
arr.get(counter).setRed(m.charAt(i+2));
}
else if(m.charAt(i)=='o'){
arr.get(counter).setOrange(m.charAt(i+2));
}
else if(m.charAt(i)=='y'){
arr.get(counter).setYellow(m.charAt(i+2));
}
else if(m.charAt(i)=='g'){
arr.get(counter).setGreen(m.charAt(i+2));
}
else if(m.charAt(i)=='b'){
arr.get(counter).setBlue(m.charAt(i+2));
}
}
counter++;
}
}
static int cityNum(List<City> arr){
int numOfMoves[]=new int[arr.size()];
for(int i=0;i<arr.size();i++){
for(int j=0;j<arr.size();j++){
if(i==j)
continue;
numOfMoves[i]+=checkCityChanges(arr.get(i),arr.get(j));
}
}
int min=Integer.MAX_VALUE;
int j=0;
for(int i=0;i<arr.size();i++){
if(numOfMoves[i]<min){
min=numOfMoves[i];
j=i+1;
}
}
return j;
}
static int checkCityChanges(City x,City y){
int counter=0;
if(x.getRed()!=y.getRed())
counter++;
if(x.getOrange()!=y.getOrange())
counter++;
if(x.getYellow()!=y.getYellow())
counter++;
if(x.getGreen()!=y.getGreen())
counter++;
if(x.getBlue()!=y.getBlue())
counter++;
return counter;
}
}
class City{
int red, orange, yellow, green, blue;
public void setRed(char m){
red=getMatMean(m);
}
public void setOrange(char m){
orange=getMatMean(m);
}
public void setYellow(char m){
yellow=getMatMean(m);
}
public void setGreen(char m){
green=getMatMean(m);
}
public void setBlue(char m){
blue=getMatMean(m);
}
public int getBlue() {
return blue;
}
public int getGreen() {
return green;
}
public int getOrange() {
return orange;
}
public int getRed() {
return red;
}
public int getYellow() {
return yellow;
}
public void show(){
System.out.println("Red:"+red);
System.out.println("Orange:"+orange);
System.out.println("Yellow:"+yellow);
System.out.println("Green:"+green);
System.out.println("Blue:"+blue);
}
int getMatMean(char m){
if(m=='P')
return 1;
if(m=='G')
return 2;
if(m=='A')
return 3;
if(m=='S')
return 4;
return 5;
}
}
import java.util.IllegalFormatException;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
public class Main{
public static void main(String[] args) throws FileNotFoundException, IOException {
TextIO.readStream(System.in);
List<City> arr=new LinkedList<City>();
int counter=0;
String m=" ";
while (true){
m=TextIO.getln();
if (m.charAt(0)=='e'){
System.out.println(cityNum(arr));
arr.clear();
counter=0;
continue;
}
if (m.charAt(0)=='#')
break;
arr.add(new City());
for(int i=0;i<m.length()-2;i++){
if(m.charAt(i)=='r'){
arr.get(counter).setRed(m.charAt(i+2));
}
else if(m.charAt(i)=='o'){
arr.get(counter).setOrange(m.charAt(i+2));
}
else if(m.charAt(i)=='y'){
arr.get(counter).setYellow(m.charAt(i+2));
}
else if(m.charAt(i)=='g'){
arr.get(counter).setGreen(m.charAt(i+2));
}
else if(m.charAt(i)=='b'){
arr.get(counter).setBlue(m.charAt(i+2));
}
}
counter++;
}
}
static int cityNum(List<City> arr){
int numOfMoves[]=new int[arr.size()];
for(int i=0;i<arr.size();i++){
for(int j=0;j<arr.size();j++){
if(i==j)
continue;
numOfMoves[i]+=checkCityChanges(arr.get(i),arr.get(j));
}
}
int min=Integer.MAX_VALUE;
int j=0;
for(int i=0;i<arr.size();i++){
if(numOfMoves[i]<min){
min=numOfMoves[i];
j=i+1;
}
}
return j;
}
static int checkCityChanges(City x,City y){
int counter=0;
if(x.getRed()!=y.getRed())
counter++;
if(x.getOrange()!=y.getOrange())
counter++;
if(x.getYellow()!=y.getYellow())
counter++;
if(x.getGreen()!=y.getGreen())
counter++;
if(x.getBlue()!=y.getBlue())
counter++;
return counter;
}
}
class City{
int red, orange, yellow, green, blue;
public void setRed(char m){
red=getMatMean(m);
}
public void setOrange(char m){
orange=getMatMean(m);
}
public void setYellow(char m){
yellow=getMatMean(m);
}
public void setGreen(char m){
green=getMatMean(m);
}
public void setBlue(char m){
blue=getMatMean(m);
}
public int getBlue() {
return blue;
}
public int getGreen() {
return green;
}
public int getOrange() {
return orange;
}
public int getRed() {
return red;
}
public int getYellow() {
return yellow;
}
public void show(){
System.out.println("Red:"+red);
System.out.println("Orange:"+orange);
System.out.println("Yellow:"+yellow);
System.out.println("Green:"+green);
System.out.println("Blue:"+blue);
}
int getMatMean(char m){
if(m=='P')
return 1;
if(m=='G')
return 2;
if(m=='A')
return 3;
if(m=='S')
return 4;
return 5;
}
}
No comments:
Post a Comment