zoukankan      html  css  js  c++  java
  • poj4012

    简单题

    判断的情况稍微有点复杂,注意判断整行都是“.”的情况

    View Code
    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    #define maxn 5005
    
    int n, m, s, k;
    char st[maxn];
    
    int cal(int a)
    {
        if (a < 0)
            return 0;
        return a;
    }
    
    int main()
    {
        scanf("%d%d%d%d", &m, &n, &s, &k);
        scanf("%s", st);
        int pos = find(st, st + n, '*') - st;
        if (pos == n)
        {
            if (k < s + 1 && m - k < s)
            {
                printf("Impossible\n");
                return 0;
            }
            if (n > s || cal(k - s) + cal(m - k - s + 1) > 1)
            {
                printf("Ambiguous\n");
                return 0;
            }
            printf("Unique\n");
            return 0;
        }
        if (pos + s > n)
        {
            printf("Impossible\n");
            return 0;
        }
        int pos1 = find(st + pos, st + pos + s, '.') - (st + pos);
        if (pos1 != s)
        {
            printf("Impossible\n");
            return 0;
        }
        int pos2 = find(st + pos + s, st + n, '*') - st;
        if (pos2 != n)
        {
            printf("Impossible\n");
            return 0;
        }
        if (k == 1 || k == m || s == 1 || s == m)
        {
            printf("Unique\n");
            return 0;
        }
        printf("Ambiguous\n");
        return 0;
    }
  • 相关阅读:
    回溯算法总结
    第四章总结
    第四章编程总结
    动态规划总结:
    第三章实践心得
    分治算法体会
    第二章上机实践总结
    代码规范与《数学之美》读后感
    第二次c++作业
    第一次博客作业
  • 原文地址:https://www.cnblogs.com/rainydays/p/2731746.html
Copyright © 2011-2022 走看看