ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#215136 | #2441. 物品 | erican | 70 | 936ms | 9304kb | C++11 | 2.1kb | 2024-11-26 19:59:43 | 2024-11-26 23:03:23 |
answer
/* Erica N */
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define int long long
#define ull unsigned long long
#define pii pair<int, int>
#define ps second
#define pf first
#define itn int
#define rd read()
int read(){
int xx = 0, ff = 1;char ch = getchar();
while (ch < '0' || ch > '9') {if (ch == '-')ff = -1; ch = getchar();}
while (ch >= '0' && ch <= '9')xx = xx * 10 + (ch - '0'), ch = getchar();
return xx * ff;
}
// void write(int out) {
// if (out < 0)
// putchar('-'), out = -out;
// if (out > 9)
// write(out / 10);
// putchar(out % 10 + '0');
// }
#define cdbg(x...) do { cerr << #x << " -> "; err(x); } while (0)
void err() { cerr << endl; }
template<template<typename...> class T, typename t, typename... A>
void err(T<t> a, A... x) { for (auto v: a) cerr << v << ' '; err(x...); }
template<typename T, typename... A>
void err(T a, A... x) { cerr << a << ' '; err(x...); }
const int N = 5e5 + 5;
const int INF = 1e18;
const int M = 1e7;
const int MOD = 1e9 + 7;
struct Node{
int a,w,id;
};
Node p[N],t[N];
int n,c;
bool cmp(Node a,Node b){
return a.w<b.w;
}
int check(int m,bool final=0){
int tot=0;
for(int i=1;i<=n;i++){
if(m<=t[i].a)p[++tot]=t[i];
}
sort(p+1,p+tot+1,cmp);
int sum=0;
int cc=c;
for(int i=1;i<=min(tot,m);i++){
if(p[i].w<=cc){
cc-=p[i].w;
sum++;
}
}
if(final){
cout<<sum<<'\n'<<m<<'\n';
for(int i=1;i<=sum;i++){
cout<<p[i].id<<' ';
}
}
return sum;
}
signed main() {
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
n=rd,c=rd;
for(int i=1;i<=n;i++){
t[i]={rd,rd,i};
}
// for(int i=1;i<=n;i++){
// cdbg(i,check(i));
// }
int l=1,r=n;
int res=0;
while(l<=r){
int mid=l+r>>1;
if(check(mid)>=check(mid+1))res=mid,r=mid-1;
else l=mid+1;
}
check(res,1);
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1180kb
input:
18 1024 8 3 8 1 16 9 17 6 2 5 12 3 1 7 7 9 17 1 14 3 2 7 17 5 2 3 2 5 2 10 8 3 2 3 17 5
output:
8 8 2 9 1 6 10 16 12 18
result:
points 1.0 Correct
Test #2:
score: 10
Accepted
time: 0ms
memory: 1180kb
input:
20 79841 15 4337 9 6289 7 9927 12 1468 7 9390 12 9228 7 5646 8 3438 3 1614 3 7048 10 8840 15 2349 16...
output:
10 10 4 12 14 1 13 20 19 11 6 17
result:
points 1.0 Correct
Test #3:
score: 10
Accepted
time: 0ms
memory: 1252kb
input:
1888 987654 1082 243 1341 309 1524 959 324 593 894 952 1428 587 1367 91 1669 683 616 866 958 791 172...
output:
949 949 909 1341 231 1259 1327 335 873 1671 892 1070 1872 452 339 501 258 1027 793 1067 1740 665 851...
result:
points 1.0 Correct
Test #4:
score: 10
Accepted
time: 0ms
memory: 1268kb
input:
1999 12000000 1112 2799 524 6890 686 6713 1803 4478 940 4341 1391 8972 953 592 454 7711 524 8224 127...
output:
978 978 53 174 195 1092 1807 517 789 1823 1014 991 423 1060 1800 350 769 1484 1428 1739 704 795 492 ...
result:
points 1.0 Correct
Test #5:
score: 10
Accepted
time: 3ms
memory: 1260kb
input:
2000 9788123 296 3976 154 3441 78 9146 1443 6444 1799 2843 1482 6843 1526 3159 1956 9324 1442 1001 5...
output:
997 997 725 67 1669 1837 1146 694 38 223 1735 1651 1228 358 1005 811 1395 1180 1094 1150 1697 1008 1...
result:
points 1.0 Correct
Test #6:
score: 10
Accepted
time: 404ms
memory: 8204kb
input:
200000 87654321 33240 503 90721 868 64272 858 170928 616 92246 213 50575 59 148252 954 87639 739 328...
output:
100168 100168 163696 156715 137190 70822 35776 31953 67876 154752 198233 92978 76158 157196 168288 1...
result:
points 1.0 Correct
Test #7:
score: 10
Accepted
time: 529ms
memory: 9304kb
input:
200000 987654321 199051 7573 6332 5631 35615 9816 185684 9227 198894 8029 185684 2173 54203 2887 107...
output:
98978 98978 130989 134505 42096 162221 96841 74944 23020 198760 30257 149065 168626 187451 171688 93...
result:
points 1.0 Correct
Test #8:
score: 0
Time Limit Exceeded
input:
444444 998244353 243276 2272 436596 1761 70822 1547 263965 942 280972 2658 87160 421 268504 2945 103...
output:
result:
Test #9:
score: 0
Time Limit Exceeded
input:
500000 999999999 131412 807 486292 804 462352 1139 52896 196 426775 1655 18059 2099 224414 1308 2851...
output:
result:
Test #10:
score: 0
Time Limit Exceeded
input:
500000 1000000000 42362 5090 327916 7618 221602 679 295161 1419 69703 4221 108614 6788 210597 6940 2...