问题
输入样例
在这里给出一组输入。例如:
2 5
1 3 3
2 3 3
输出样例
在这里给出相应的输出。例如:
No
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
栈限制 8192 KB
代码
#include<stdio.h>
int main()
{
int N,W,s,t,p;
int arr_s[N]; // 存放s的数组
int arr_t[N];
int arr_p[N];
scanf("%d %d",&N,&W);
for(int i=0; i<N; i++)
{
scanf("%d %d %d",&s,&t,&p);
arr_s[i]=s;
arr_t[i]=t;
arr_p[i]=p;
}
int flag=1; //旗帜用于最后输出yes和no
for(int i=0; i<N; i++) // 外层遍历每一个数
{
int sum=0; // 用于存储重合时间段用户的总用水量
for(int j=0; j<N; j++)
{
if((arr_s[i]>=arr_s[j] && arr_t[i]<=arr_t[j])|| (arr_s[i]<=arr_s[j] && arr_t[i]>=arr_t[j] )) // 2 3 含于1 5 1 5 包含 2 3
{
sum+=arr_p[j];
}
else
{
if(arr_p[j]<=W)
{
flag=1;
}
else
{
flag=0;
break; // 用水量大于w 时,不再进行判断
}
}
}
if(sum<=W)
{
flag=1;
}
else
{
flag=0;
break;
}
}
if(flag==1) printf("Yes");
else printf("No");
return 0;
}
运行
提交
以上仅供参考,如果觉得以上代码不够好,就请在评论区回复或者是私信。如果有哪里不懂的也可以评论区或者是私信我,一天8h在线。