Advertisement
zsoltizbekk

csavar c#

May 23rd, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.76 KB | None | 0 0
  1. namespace csavarkeszlet
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             StreamReader sr = new StreamReader(args[0]);
  8.             String line;
  9.             while ((line = sr.ReadLine()) != null)
  10.             {
  11.  
  12.                 String[] tokens = line.Split(' ');
  13.                 int sor = int.Parse(tokens[0]);
  14.                 int oszlop = int.Parse(tokens[1]);
  15.                 int anya = 0;
  16.                 String[] t = new String[sor];
  17.  
  18.                 int[] szamok = new int[100000];
  19.  
  20.                 for (int i = 0; i < sor; i++)
  21.                 {
  22.                     t[i] = sr.ReadLine();
  23.                 }
  24.  
  25.                 for (int i = 0; i < sor; i++)
  26.                 {
  27.                     for (int j = 0; j < oszlop; j++)
  28.                     {
  29.                         if ((t[i][j]) == 'O')
  30.                         {
  31.                             anya++;
  32.                             String temp = t[i].Substring(0, j) + '.' + t[i].Substring(j + 1);
  33.                             t[i] = temp;
  34.                         }
  35.                         if ((t[i][j]) == '*')
  36.                         {
  37.                             String temp = t[i].Substring(0, j) + '.' + t[i].Substring(j + 1);
  38.                             t[i] = temp;
  39.                             int k = i;
  40.                             int l = j;
  41.                             int hossz = 0;
  42.  
  43.                             //bal
  44.  
  45.                             while (l > 0 && t[k][l - 1] == '-')
  46.                             {
  47.                                 l--;
  48.                                 hossz++;
  49.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  50.                                 t[k] = tmp;
  51.                                 if (hossz > 0 && (l == 0 || t[k][l - 1] != '-'))
  52.                                 {
  53.                                     szamok[hossz]++;
  54.                                     //System.out.println("bal:"+hossz);
  55.                                     hossz = 0;
  56.                                     k = i;
  57.                                     l = j;
  58.                                     break;
  59.                                 }
  60.                             }
  61.  
  62.                             //jobb
  63.  
  64.                             while (l < oszlop - 1 && t[k][l + 1] == '-')
  65.                             {
  66.                                 l++;
  67.                                 hossz++;
  68.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  69.                                 t[k] = tmp;
  70.                                 if (hossz > 0 && (l == oszlop - 1 || t[k][l + 1] != '-'))
  71.                                 {
  72.                                     szamok[hossz]++;
  73.                                     //System.out.println("jobb:"+hossz);
  74.                                     hossz = 0;
  75.                                     k = i;
  76.                                     l = j;
  77.                                     break;
  78.                                 }
  79.                             }
  80.  
  81.                             //fel
  82.  
  83.                             while (k > 0 && t[k - 1][l] == '|')
  84.                             {
  85.                                 k--;
  86.                                 hossz++;
  87.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  88.                                 t[k] = tmp;
  89.                                 if (hossz > 0 && (k == 0 || t[k - 1][l] != '|'))
  90.                                 {
  91.                                     szamok[hossz]++;
  92.                                     //System.out.println("fel:"+hossz);
  93.                                     hossz = 0;
  94.                                     k = i;
  95.                                     l = j;
  96.                                     break;
  97.                                 }
  98.                             }
  99.  
  100.                             //le
  101.  
  102.                             while (k < sor - 1 && t[k + 1][l] == '|')
  103.                             {
  104.                                 k++;
  105.                                 hossz++;
  106.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  107.                                 t[k] = tmp;
  108.                                 if (hossz > 0 && (k == sor - 1 || t[k + 1][l] != '|'))
  109.                                 {
  110.                                     szamok[hossz]++;
  111.                                     //System.out.println("le:"+hossz);
  112.                                     hossz = 0;
  113.                                     k = i;
  114.                                     l = j;
  115.                                     break;
  116.                                 }
  117.                             }
  118.  
  119.                             //bal fel atlo
  120.  
  121.                             while ((l > 0 && k > 0) && t[k - 1][l - 1] == '\\')
  122.                             {
  123.                                 l--;
  124.                                 k--;
  125.                                 hossz++;
  126.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  127.                                 t[k] = tmp;
  128.                                 if (hossz > 0 && (l == 0 || k == 0 || t[k - 1][l - 1] != '\\'))
  129.                                 {
  130.                                     szamok[hossz]++;
  131.                                     //System.out.println("balfel:"+hossz);
  132.                                     hossz = 0;
  133.                                     k = i;
  134.                                     l = j;
  135.                                     break;
  136.                                 }
  137.                             }
  138.  
  139.                             //bal le atlo
  140.  
  141.                             while ((l > 0 && k < sor - 1) && t[k + 1][l - 1] == '/')
  142.                             {
  143.                                 l--;
  144.                                 k++;
  145.                                 hossz++;
  146.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  147.                                 t[k] = tmp;
  148.                                 if (hossz > 0 && (l == 0 || k == sor - 1 || t[k + 1][l - 1] != '/'))
  149.                                 {
  150.                                     szamok[hossz]++;
  151.                                     //System.out.println("balle:"+hossz);
  152.                                     hossz = 0;
  153.                                     k = i;
  154.                                     l = j;
  155.                                     break;
  156.                                 }
  157.                             }
  158.  
  159.                             //jobb fel atlo
  160.  
  161.                             while ((l < oszlop - 1 && k > 0) && t[k - 1][l + 1] == '/')
  162.                             {
  163.                                 l++;
  164.                                 k--;
  165.                                 hossz++;
  166.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  167.                                 t[k] = tmp;
  168.                                 if (hossz > 0 && ((l == oszlop - 1 || k == 0) || t[k - 1][l + 1] != '/'))
  169.                                 {
  170.                                     szamok[hossz]++;
  171.                                     //System.out.println("jobbfel:"+hossz);
  172.                                     hossz = 0;
  173.                                     k = i;
  174.                                     l = j;
  175.                                     break;
  176.                                 }
  177.                             }
  178.  
  179.                             //jobb le atlo
  180.  
  181.                             while ((l < oszlop - 1 && k < sor - 1) && t[k + 1][l + 1] == '\\')
  182.                             {
  183.                                 l++;
  184.                                 k++;
  185.                                 hossz++;
  186.                                 String tmp = t[k].Substring(0, l) + '.' + t[k].Substring(l + 1);
  187.                                 t[k] = tmp;
  188.                                 if (hossz > 0 && ((l == oszlop - 1 || k == sor - 1) || t[k + 1][l + 1] != '\\'))
  189.                                 {
  190.                                     szamok[hossz]++;
  191.                                     //System.out.println("jobble:"+hossz);
  192.                                     hossz = 0;
  193.                                     k = i;
  194.                                     l = j;
  195.                                     break;
  196.                                 }
  197.                             }
  198.                         }
  199.                     }
  200.                 }
  201.  
  202.                 Console.Write(anya);
  203.                 for (int i = 0; i < szamok.Length; i++)
  204.                     if (szamok[i] > 0)
  205.                         Console.Write(" " + i + ":" + szamok[i]);
  206.                 Console.WriteLine("");
  207.             }
  208.         }
  209.     }
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement