Educational Codeforces Round 26 C. Two Seals

来源:互联网 发布:linux 终端切换 编辑:程序博客网 时间:2024/05/23 15:39

题目网址: Educational Codeforces Round 26 C. Two Seals

题意分析:

题意:

  • 就是求取出两个矩形放在已知的矩形区域内, 使得找出的这两个矩形占的面积最大
  • 粗暴一点… 把八种情况都写了..

代码:

#include <bits/stdc++.h>using namespace std;const int SIZE = 105;pair<int, int> point[SIZE];int main(int argc, char const *argv[]){    int n, a, b;    int x, y;    while (~scanf("%d %d %d", &n, &a, &b))    {        for (int i = 0; i < n; ++i)        {            scanf("%d %d", &x, &y);            point[i] = make_pair(x, y);        }        int MAX = 0;        for (int i = 0; i < n; ++i)        {            for (int j = i + 1; j < n; ++j)            {                if (point[i].first + point[j].first <= a \                        && point[i].second <= b\                        && point[j].second <= b)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if(point[i].first + point[j].second <= a \                        && point[i].second <= b \                        && point[j].first <= b)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if (point[i].first + point[j].first <= b \                        && point[i].second <= a\                        && point[j].second <= a)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if(point[i].first + point[j].second <= b \                        && point[i].second <= a \                        && point[j].first <= a)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                // 5                if (point[i].second + point[j].first <= a \                        && point[i].first <= b\                        && point[j].second <= b)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if(point[i].second + point[j].second <= a \                        && point[i].first <= b \                        && point[j].first <= b)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if (point[i].second + point[j].first <= b \                        && point[i].first <= a\                        && point[j].second <= a)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }                if(point[i].second + point[j].second <= b \                        && point[i].first <= a \                        && point[j].first <= a)                {                    MAX = max(MAX, point[i].first*point[i].second \                        + point[j].first*point[j].second);                }            }        }        printf("%d\n", MAX);    }    return 0;}
原创粉丝点击