csp考试得公共钥匙盒,一直70分,哪位大神帮忙看一下

半定方 2018-12-04 08:04:30
#include<iostream>
#include<algorithm>
using namespace std;
class Teacher
{
public:
int w;
int s;
int c;
int cou() //返回还钥匙时间
{
return s + c;
}
};
class Key
{
public:
int num;
int flag; //为0时说明该位置无钥匙
};
bool com(Teacher a, Teacher b)
{
return a.w < b.w;
}
int main()
{
int N, K;
cin >> N >> K;
Teacher tea[1001];
Key key[1001];
for (int i = 0;i < K;i++)
{
cin >> tea[i].w >> tea[i].s >> tea[i].c;
}
for (int i = 0;i < N;i++)
{
key[i].num = i + 1;
key[i].flag = 1;
}
sort(tea, tea + K, com);//将老师按钥匙编号由小到大排序,主要是满足从小到大还钥匙
int i = 10010;
for (int t = 1;t < i;i++)
{
//还钥匙
for (int j = 0;j < K;j++)
{
if (tea[j].cou() == t) //到了j老师还钥匙时间
{
for (int k = 0;k < N;k++)
{
if (key[k].flag == 0) //找到空的位置
{
key[k].num = tea[j].w; //将钥匙挂上
key[k].flag = 1;
break;
}
}
}
}
//取钥匙
for (int j = 0;j < K;j++)
{
if (tea[j].s == t) //到了取钥匙得时间
{
for (int k = 0;k < N;k++)
{
if (key[k].num == tea[j].w) //找到要取得钥匙
{
key[k].flag = 0; //取走钥匙
break;
}
}
}
}
}
for (int i = 0;i < N;i++)
cout << key[i].num << " ";
system("pause");
return 0;
}
...全文
73 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧