poj2181Problem I:Missing教大家画矩形

13 篇文章 0 订阅

 新秀杯结束了,对自己的感觉就是,各种不满意,各种想揍自己,尤其是这道题,对很多人来说,这道题不过水题而已,却把我坑惨了

我犯的一个最严重也是最主要的错误就是,把题目里的“矩形”——我确定我当时没看错,看到眼里的“矩形”竟然“理解”成了正方形!!如此低级到不堪入目的错误。。。只能说明当时我是处于一种什么样的状态,心里完全不能静下来。而且恶劣的思维习惯,将想当然的事情理理所当然的不再去怀疑,这么一个最基本的问题,我却错了,错的这么离谱,一度在debug的时候,我还怀疑是不是oj出了问题,完全是自欺欺人,,,我真应该好好反思一下自己,究竟是为了什么在做题,是因为真正的喜欢还是因为单纯的达到目的。不敢再贴自己的代码,贴学长写的好好学习好好反思吧。

//Draw A Rectangle
//Author: _missing
// 模拟题,确定一个矩形只需要对角线确定,
// 所以找出最小,最大的x值和y值就行了
// 题目虽然简单,但是如果写法不好,也会被坑~
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
void draw(int x1, int y1, int x2, int y2) {
    for (int i = 0; i < x1; ++i) puts("");
    for (int i = x1; i <= x2; ++i) {
        for (int j = 0; j < y1; ++j) putchar(' ');
        for (int j = y1; j <= y2; ++j)
            if (i == x1 || i == x2) putchar('*');
            else if (j == y1 || j == y2) putchar('*');
            else putchar(' ');
        putchar('\n');
    }
}
int main() {
    //freopen("data2.in", "r", stdin);
    //freopen("data2.out", "w", stdout);
    int T, ncase = 0, N;
    while (~scanf("%d", &T)) {
        while (T--) {
            int x[4], y[4], minx = 100, maxx = -1, miny = 100, maxy = -1;
            int ok = 1;

            scanf("%d", &N);
            for (int i = 0; i < N; ++i) scanf("%d %d", x+i, y+i);
            for (int i = 0; i < N; ++i) {
                minx = min(minx, x[i]);
                maxx = max(maxx, x[i]);
                miny = min(miny, y[i]);
                maxy = max(maxy, y[i]);
            }
            if (minx == maxx || miny == maxy) ok = 0;
            for (int i = 0; ok && i < N; ++i) {
                if ((x[i] == minx || x[i] == maxx) &&
                    (y[i] == miny || y[i] == maxy)) continue;
                ok = 0;
            }

            printf("Case #%d:\n", ++ncase);
            if (!ok) { puts("None"); continue; }
            draw(minx, miny, maxx, maxy);
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值