站外题求助(玄关)
  • 板块学术版
  • 楼主2345A
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/3 10:12
  • 上次更新2024/5/3 13:09:16
查看原帖
站外题求助(玄关)
565070
2345A楼主2024/5/3 10:12

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[10000][3]; 
bool compare(int a[], int b[]) 
{
    return a[0] < b[0];
}
bool AC(int n, int temp0, int a[][3])
 {
    for (int i=0;i<n-1;i++) 
	{
        for (int j=i+1;j<n;j++) 
		{
            if (compare(a[i], a[j])) 
			{
                int temp[3];
                for (int k=0;k<3;k++) 
				{
                    temp[k] = a[i][k];
                    a[i][k] = a[j][k];
                    a[j][k] = temp[k];
                }
            }
        }
}

    int current_temp = temp0;
    for (int i=0;i<n;i++) 
	{
        current_temp += a[i][0] - (i > 0 ? a[i - 1][0] : 0);
        if (current_temp < a[i][1] || current_temp > a[i][2]) 
		{
            int need_temp = current_temp < a[i][1] ? a[i][1] : a[i][2];
            if (need_temp - current_temp > a[i][0] - (i > 0 ? a[i - 1][0] : 0)) 
            return 0;
            current_temp = need_temp;
        }
    }
    return 1;
}
main() 
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    cin>>a[i][0]>>a[i][1]>>a[i][2];
    
    if(AC(n, m, a)) 
    cout<<1;
    else 
    cout<<0;
    return 0;
}

题目描述 同时,东区也拥有一家NO.1食堂。食堂非常努力地让学生满意,甚至记住了所有学生喜欢的空调温度范围,现在想通过控制食堂空调的温度来满足所有学生。

食堂的空调有3种状态:关机、供暖和制冷。

当它关闭时,食堂的温度保持不变。当它被加热时,温度在一分钟内上升1。最后,当它冷却时,温度在一分钟内下降1。可以在任意整数分钟内任意多次更改状态,空调一开始是关着的。

每个学生的特征有三个值: -第 个学生光顾食堂的时间(以分钟为单位), -他们喜欢的温度范围的下限, -他们喜欢的温度范围的上限。

学生在光顾食堂的瞬间,如果温度在他们喜欢的范围内,就会感到满意。当且仅当第 分钟的温度在 和 (包括)之间时,第 个学生才满意。

给定初始温度、学生的访问时间列表以及他们的首选温度范围,您将帮助东区食堂了解是否有可能满足所有学生,最开始,食堂的起始时间为0。

输入输出格式 输入格式 第一行包含两个整数 和 , ,其中 是学生的数量, 是食堂的初始温度(本题中温度可以突破绝对零度)。

接下来,n行紧随其后。它们的第i行包含三个整数、和 ,其中 是第 个学生访问的时间, 是他们首选温度范围的下限, 是他们首选温度范围的上限,首选的温度包括在内。

到访时间 按时间先后,顺序给出。

输出格式
对于每个测试用例,如果有可能满足所有学生的要求,请打印1。否则,打印0。

输入输出样例
输入样例1

3 0
5 1 2
7 3 5
10 -1 0

输出样例1

1

输入样例2

2 12
5 7 10
10 16 20

输出样例2

0

说明 在第一种情况下,食堂可以通过以下方式控制空调以满足所有学生:

第0分钟,将状态改为加热(温度为0)。 在第二分钟,将状态改为关闭(温度为2)。 在第5分钟,将状态改为加热(温度为2,第一个学生满意)。 在第6分钟,将状态更改为关闭(温度为3)。 在第7分钟,将状态改为制冷(温度为3,第二个学生满意)。 在第10分钟,温度为0,这可以满足最后一位学生的要求。

在第二种情况下,食堂必须让至少一名学生不满意。

2024/5/3 10:12
加载中...