问题标题: 酷町堂:4337 礼物(gift)

0
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

4337   礼物(gift) 经验值:1200

不许抄袭,一旦发现,直接清空经验!

题目描述 Description

飞翔和快乐是在合肥上的小学、初中和高中,他们相继上了同一所初中、同一所高中和同一所大学,所以他们顺理成章的成为了好哥们。这个学期,飞翔大三,快乐大二。今年国庆,他们相约一起回到日夜思恋的合肥,和自己的家人一起看国庆70周年阅兵,看望陪伴着自己青春岁月的老师,和以前的同学一起吃吃饭、看看电影。在回合肥前,他们商量着买一些当地的特产作为礼物带回来,送给自己的亲朋好友。当然,他们准备把这些礼物放到飞翔的行李箱中。已知,礼物和行李箱都是长方体,大小都是测量过的,请问,有多少礼物可以放进飞翔的行李箱中。

输入描述 Input Description

共n+2行:第1行一个正整数n,表示有n件礼物;第2行,三个正整数x,y,z,表示行李箱的大小;接下来的n行,每行三个正整数a,b,c,分别表示每件礼物的大小。大小也就是长、宽和高,由于测量的时候没有注意,大小不一定是按照长、宽和高的顺序记录的。

输出描述 Output Description

一行,一个整数,表示能够放进行李箱中的礼物件数。

样例输入 Sample Input

4 50 40 30 10 5 25 50 8 8 25 45 36 29 39 49

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

1<=n<=10000,1<=x,y,z,a,b,c<=100。

//CODE
//#pragma GCC optimize(3)
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
int n, a[10005], b[10005], c[10005], A, B, C, cnt;
int main() {
//  freopen ("题目名.in", "r", stdin);
//  freopen ("题目名.out", "w", stdout);
    cin >> n;
    cin >> A >> B >> C;
    for (int i = 1; i <= n; i ++) {
        cin >> a[i] >> b[i] >> c[i];
        if (a[i] <= A && b[i] <= B && c[i] <= C || a[i] * b[i] * c[i] <= A * B * C) {
            cnt ++;
        }
    }
    cout << cnt;
//  fclose (stdin);
//  fclose (stdout);
    return 0;//好习惯!
}

各位大佬,看看我哪写错了,样例输出4


0
0
王泽宇
王泽宇
初级光能
初级光能

先排序,再贪心

排序比较体积小

0
杜智宸
杜智宸
中级光能
中级光能

把<=换成<

去掉if里的   || a[i] * b[i] * c[i] <= A * B * C

0
杜智宸
杜智宸
中级光能
中级光能

定义两个数组,a[4],b[4]

先输入a[1]~a[3](三个可以直接分开输入),再给a数组排序

(在循环里)再输入b[1]~b[3](三个可以直接分开输入),再给b数组排序

if(a[1]>b[1] && a[2]>b[2] && a[3]>b[3])

cnt++;

输出cnt

我要回答