HDU 6330 Visual Cube(アナログ)

2980 ワード

タイトルリンク:http://acm.hdu.edu.cn/showproblem.php?pid=6330
HDU 6330 Visual Cube(模拟)_第1张图片
HDU 6330 Visual Cube(模拟)_第2张图片
難点は主に長さ、幅、高さと図形の間の法則を探し出して、これを解決して問題がありません
#include
#include
#include
using namespace std;

int main()
{
    int t,a,b,c;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&a,&b,&c);
        for(int i=0;i<2*b+2*c+1;i++)
        {
             for(int j=0;j<2*b+2*a+1;j++)
             {
                int h=i-(2*c);
                int m=((2*b-i)>0)?(2*b-i):0;
                if(j<2*b-i)
                    printf(".");
                else if(j<2*a+1+m)
                {
                    if(i%2==0)
                    {
                        if(j!=2*a+m)
                        {
                            printf("+-");
                            j++;
                        }
                        else
                            printf("+");
                    }
                    else
                    {
                       if(j!=2*a+m)
                       {
                            if(i>2*b)
                                printf("|.");
                            else
                                printf("/.");
                            j++;
                       }
                        else
                        {
                            if(i>2*b)
                                printf("|");
                            else
                                printf("/");
                        }
                    }
                }
                else if(j<2*a+1+2*b-h)
                {
                    if(i%2==0)
                    {
                        if(j%2==0)
                            printf("+");
                        else
                            printf(".");
                    }
                    else
                    {
                        if(j%2==0)
                            printf("|");
                        else
                            printf("/");
                    }
                }
                else
                    printf(".");
             }
             printf("
"); } } }