zoukankan      html  css  js  c++  java
  • WUST Online Judge

    2168: 糖果行动

    Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
    Submitted: 329  Accepted: 118
    [Submit][Status][Web Board]

    Description

    小矮人为了糖果而战,公主每指挥一次行动,所有的小矮人都同时向右运动,假设所有小矮人运动速度相同,直到其中一个拿到糖果或其中一个到达最右边就全部停止运动,公主再指挥一次,
    到达最右边或已经拿到糖果的小矮人会停止运动,其余小矮人还会重复这样运动,直到所有小矮人都拿到糖果,求公主一共指挥了多少次,如果不能拿到所有糖果,输出-1。

    Input

    多组数据,每组先输入n,m(2<=n,m<=1000),接下来n行,每行m个字符,每一行都有一个小矮人且只有一个糖果,糖果可能在小矮人左边,‘S'表示小矮人的位置,‘C'表示糖果的位置,’.'表示空
    地。

    Output

    输出公主的指挥的次数,如果不能拿到所有糖果,输出-1。

    Sample Input

    4 7
    S..C...
    ..S...C
    .S...C.
    S.....C
    4 5
    .C.S.
    S.C..
    S...C
    S.C..
    

    Sample Output

    3
    -1
    

    HINT

    样例一:第一次指挥第1个小矮人拿到糖果,第二次指挥第2,3个小矮人拿到糖果,第三次指挥第4个小矮人拿到糖果。
    样例二:不能拿到第一个糖果。

    Author

    LL

    代码如下:

    #include <stdio.h>
    
    int main() {
        int i, m, n, flag, temp, cnt;
        char s[1000][1000];
        while (scanf("%d%d", &n, &m) != EOF) {
            int a[1000];
            flag = 1; temp = 0;
            fflush(stdin);
            for (i = 0; i < n; i++) {
                scanf("%s", s[i]);
                fflush(stdin);
                cnt = strchr(s[i], 'C') - strchr(s[i], 'S');
                if (cnt > 0) a[cnt]++;
                else flag = 0;
            }
            for (i = 0; i < 1000; i++)
                if (a[i] > 0) temp++;
            if (flag) printf("%d
    ", temp);
            else printf("-1
    ");
        }
        return 0;
    }
    
    作者:McR
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    幂等性-接口安全性
    spring 事务
    Disruptor 并发框架
    java中锁的应用
    线程池原理
    并发队列阻塞式与非阻塞式的区别
    Swagger UI教程 API 文档神器 搭配Node使用
    linux ssh_config和sshd_config配置文件
    Linux中iptables设置详细
    Linux(Centos)之安装Redis及注意事项
  • 原文地址:https://www.cnblogs.com/mcr-tcp/p/9170744.html
Copyright © 2011-2022 走看看