POJ3095 Linear Pachinko

 题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=3095

 老虎机?子弹机?这是很有意思的一道模拟题...

 

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class Main {
  5.     public static void main(String[] args) throws IOException {
  6.         BufferedReader read = new BufferedReader(new InputStreamReader(
  7.                 System.in));
  8.         String s;
  9.         while (!(s = read.readLine()).equals("#")) {
  10.             char[] c = s.toCharArray();
  11.             int[] p = new int[c.length];
  12.             for (int i = 0; i < c.length; i++) {
  13.                 if (c[i] == '.') {
  14.                     p[i] = 100;
  15.                 } else if (c[i] == '_') {
  16.                     p[i] = 0;
  17.                 } else if (c[i] == '|') {
  18.                     int k = 1;
  19.                     while (true) {
  20.                         if (i - k < 0) {
  21.                             p[i] += 50;
  22.                             break;
  23.                         }
  24.                         if (c[i - k] == '_') {
  25.                             k++;
  26.                             continue;
  27.                         } else if (c[i - k] == '.' || c[i - k] == '/') {
  28.                             p[i] += 50;
  29.                             break;
  30.                         } else if (c[i - k] == '|' || c[i - k] == '//') {
  31.                             break;
  32.                         }
  33.                     }
  34.                     k = 1;
  35.                     while (true) {
  36.                         if (i + k == c.length) {
  37.                             p[i] += 50;
  38.                             break;
  39.                         }
  40.                         if (c[i + k] == '_') {
  41.                             k++;
  42.                             continue;
  43.                         } else if (c[i + k] == '.' || c[i + k] == '//') {
  44.                             p[i] += 50;
  45.                             break;
  46.                         } else if (c[i + k] == '|' || c[i + k] == '/') {
  47.                             break;
  48.                         }
  49.                     }
  50.                 } else if (c[i] == '/') {
  51.                     int k = 1;
  52.                     while (true) {
  53.                         if (i - k < 0) {
  54.                             p[i] = 100;
  55.                             break;
  56.                         }
  57.                         if (c[i - k] == '_') {
  58.                             k++;
  59.                             continue;
  60.                         } else if (c[i - k] == '.' || c[i - k] == '/') {
  61.                             p[i] = 100;
  62.                             break;
  63.                         } else if (c[i - k] == '|' || c[i - k] == '//') {
  64.                             break;
  65.                         }
  66.                     }
  67.                 } else if (c[i] == '//') {
  68.                     int k = 1;
  69.                     while (true) {
  70.                         if (i + k == c.length) {
  71.                             p[i] = 100;
  72.                             break;
  73.                         }
  74.                         if (c[i + k] == '_') {
  75.                             k++;
  76.                             continue;
  77.                         } else if (c[i + k] == '.' || c[i + k] == '//') {
  78.                             p[i] = 100;
  79.                             break;
  80.                         } else if (c[i + k] == '|' || c[i + k] == '/') {
  81.                             break;
  82.                         }
  83.                     }
  84.                 }
  85.             }
  86.             int sum = 0;
  87.             for (int i = 0; i < p.length; i++) {
  88.                 sum += p[i];
  89.             }
  90.             System.out.println(sum / p.length);
  91.         }
  92.     }
  93. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值