关注
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(int a, int b)
{
return a > b;
}
bool cmp1(vector<int>a, vector<int>b)
{
return a[0] > b[0];
}
int main()
{
int n, m;
while (cin >> n >> m)
{
vector<int>a(m); //糖的能量值
for (int i = 0; i < m; i++)
cin >> a[i];
vector<vector<int>>b(n,vector<int>(2)); //存储小熊的战斗力和饥饿值
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> b[i][j];
}
}
sort(a.begin(), a.end(),cmp);
vector<vector<int>>b1(b.begin(), b.end());
sort(b1.begin(), b1.end(), cmp1);
vector<int>flag(m, 0);
vector<int>res(n,0); //存储小熊剩余饥饿值
for (int i = 0; i < n; i++)
{
int j = 0;
int tmp = b1[i][1];
while (j < m)
{
if (a[j] <= tmp && !flag[j])
{
tmp = tmp - a[j];
flag[j] = 1;
}
j++;
}
res[i]=tmp;
}
for (int i = 0; i < n; i++) //输出
{
int t = b[i][0];
for (int j = 0; j < n; j++)
{
if (b[j][0] == t)
{
cout << res[j] << endl;
break;
}
}
}
}
}
不知道为什么只通过了40%,思路应该没问题,我觉得应该是超时了。求大神指点。
查看原帖
点赞 评论
牛客热帖
正在热议
# 25届秋招总结 #
367019次浏览 3623人参与
# 如果再来一次,你还会选择这个工作吗? #
95598次浏览 928人参与
# 阿里云管培生offer #
44568次浏览 1127人参与
# 地方国企笔面经互助 #
5695次浏览 13人参与
# ai智能作图 #
7514次浏览 128人参与
# 发工资后,你做的第一件事是什么 #
3402次浏览 12人参与
# 百度开奖 #
222978次浏览 1442人参与
# 我的实习求职记录 #
6096702次浏览 83770人参与
# 上班到公司第一件事做什么? #
14397次浏览 164人参与
# 阿里求职进展汇总 #
71416次浏览 769人参与
# 简历被挂麻了,求建议 #
2519675次浏览 33416人参与
# 听到哪句话就代表面试稳了or挂了? #
96005次浏览 807人参与
# 华为工作体验 #
108771次浏览 851人参与
# 网易求职进展汇总 #
38697次浏览 311人参与
# 如何写一份好简历 #
614889次浏览 8692人参与
# 如果有时光机,你最想去到哪个年纪? #
26332次浏览 545人参与
# 面试体验感最好的是哪家? #
91164次浏览 894人参与
# 牛客租房专区 #
1827次浏览 68人参与
# 如何一边实习一边秋招 #
1001467次浏览 12712人参与
# 实习中的菜狗时刻 #
279615次浏览 2752人参与
# 还记得你第一次面试吗? #
27246次浏览 361人参与
# 腾讯求职进展汇总 #
203784次浏览 1683人参与