Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- public class Csavarkeszlet {
- public static void main(String[] args) throws FileNotFoundException, IOException {
- BufferedReader br = new BufferedReader(new FileReader(args[0]));
- String line;
- while((line = br.readLine()) != null){
- String[] tokens = line.split(" ");
- int sor = Integer.parseInt(tokens[0]);
- int oszlop = Integer.parseInt(tokens[1]);
- int anya = 0;
- String[] t = new String[sor];
- int[] szamok = new int[100000];
- for (int i = 0; i < sor; i++){
- t[i]=br.readLine();
- }
- for (int i = 0; i < sor; i++){
- for (int j = 0; j < oszlop; j++){
- if ((t[i].charAt(j)) == 'O'){
- anya++;
- String temp = t[i].substring(0,j)+'.'+t[i].substring(j+1);
- t[i] = temp;
- }
- if ((t[i].charAt(j)) == '*'){
- String temp = t[i].substring(0,j)+'.'+t[i].substring(j+1);
- t[i] = temp;
- int k = i;
- int l = j;
- int hossz = 0;
- //bal
- while (l > 0 && t[k].charAt(l-1) == '-'){
- l--;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (l == 0 || t[k].charAt(l-1) != '-')){
- szamok[hossz]++;
- //System.out.println("bal:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //jobb
- while (l < oszlop-1 && t[k].charAt(l+1) == '-'){
- l++;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (l == oszlop-1 || t[k].charAt(l+1) != '-')){
- szamok[hossz]++;
- //System.out.println("jobb:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //fel
- while (k > 0 && t[k-1].charAt(l) == '|'){
- k--;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (k == 0 || t[k-1].charAt(l) != '|')){
- szamok[hossz]++;
- //System.out.println("fel:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //le
- while (k < sor-1 && t[k+1].charAt(l) == '|'){
- k++;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (k == sor-1 || t[k+1].charAt(l) != '|')){
- szamok[hossz]++;
- //System.out.println("le:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //bal fel atlo
- while ((l > 0 && k > 0) && t[k-1].charAt(l-1) == '\\'){
- l--;
- k--;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (l == 0 || k == 0 || t[k-1].charAt(l-1) != '\\')){
- szamok[hossz]++;
- //System.out.println("balfel:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //bal le atlo
- while ((l > 0 && k < sor-1) && t[k+1].charAt(l-1) == '/'){
- l--;
- k++;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && (l == 0 || k == sor-1 || t[k+1].charAt(l-1) != '/')){
- szamok[hossz]++;
- //System.out.println("balle:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //jobb fel atlo
- while ((l < oszlop-1 && k > 0) && t[k-1].charAt(l+1) == '/'){
- l++;
- k--;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && ((l == oszlop-1 || k == 0)|| t[k-1].charAt(l+1) != '/')){
- szamok[hossz]++;
- //System.out.println("jobbfel:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- //jobb le atlo
- while ((l < oszlop-1 && k < sor-1) && t[k+1].charAt(l+1) == '\\'){
- l++;
- k++;
- hossz++;
- String tmp = t[k].substring(0,l)+'.'+t[k].substring(l+1);
- t[k] = tmp;
- if (hossz > 0 && ((l == oszlop-1 || k == sor-1)|| t[k+1].charAt(l+1) != '\\')){
- szamok[hossz]++;
- //System.out.println("jobble:"+hossz);
- hossz = 0;
- k = i;
- l = j;
- break;
- }
- }
- }
- }
- }
- System.out.print(anya);
- for (int i = 0; i < szamok.length; i++)
- if (szamok[i] > 0)
- System.out.print(" " + i + ":" + szamok[i]);
- System.out.println("");
- }
- }
- }
Add Comment
Please, Sign In to add comment