ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#215110 | #2441. 物品 | N | 0 | 995ms | 21984kb | C++11 | 2.2kb | 2024-11-26 19:13:38 | 2024-11-26 23:01:21 |
answer
//
// na 2441.cpp
// Competitive Programming
//
// Created by m2 on 2024/11/26.
//
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
const int maxn = 5e5 + 5;
int n, C, inv, ansm, ansval;
inline int rd(){
int v = 0; char r = getchar();
while(r - 48 >= 10u)
r = getchar();
do{
v = (v << 3) + (v << 1) + (r ^ 48);
r = getchar();
}while(r - 48 < 10u);
return v;
}
void pr(int x){
if(x < 10)
putchar(x ^ 48);
else{
pr(x / 10);
putchar((x % 10) ^ 48);
}
}
struct Pkg{
int a, w, id;
inline void read(int id){ a = rd(); w = rd(); this->id = id; }
inline bool operator < (const Pkg &other) const{ return w < other.w; }
}ps[maxn];
struct Cmpa{
inline bool operator() (const Pkg &a, const Pkg &b){ return a.a < b.a; }
};
inline bool cmpa(const Pkg &a, const Pkg &b){ return a.a < b.a; }
priority_queue<Pkg, vector<Pkg>, Cmpa> pack;
priority_queue<Pkg> rest;
vector<int> ans;
int main(){
cin.tie(0)->sync_with_stdio(false);
n = rd(); C = rd();
for(int i = 0; i < n; ++i){
ps[i].read(i + 1);
rest.push(ps[i]);
}
for(int i = 1; i <= n; ++i){
while(!pack.empty() && pack.top().a < i){
inv -= pack.top().w;
pack.pop();
}
while(pack.size() < i && !rest.empty() && inv + rest.top().w <= C){
if(rest.top().a < i){
rest.pop();
continue;
}
inv += rest.top().w;
pack.push(rest.top());
rest.pop();
}
if(pack.size() > ansval){
ansval = int(pack.size());
ansm = i;
}
}
pr(ansval); putchar('\n');
sort(ps, ps + n, cmpa);
int p = 0;
while(ps[p].a < ansm)
++p;
sort(ps + p, ps + n);
inv = 0;
while(p < n && inv + ps[p].w <= C){
inv += ps[p].w;
ans.push_back(ps[p].id);
++p;
}
pr(int(ans.size())); putchar('\n');
for(int i: ans){
pr(i); putchar(' ');
}
putchar('\n');
fflush(stdout);
return 0;
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 1228kb
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:
10 7 9 6 10 12 18 4 3
result:
wrong answer Wrong answer!
Test #2:
score: 0
Wrong Answer
time: 0ms
memory: 1224kb
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:
9 12 4 12 14 1 13 2 16 18 20 19 11 6
result:
wrong answer Wrong answer!
Test #3:
score: 0
Wrong Answer
time: 1ms
memory: 1312kb
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:
1212 707 909 1341 231 335 1327 1259 873 892 1671 1070 1872 452 339 501 258 1067 1812 164 1483 1032 1...
result:
wrong answer Wrong answer!
Test #4:
score: 0
Wrong Answer
time: 1ms
memory: 1316kb
input:
1999 12000000 1112 2799 524 6890 686 6713 1803 4478 940 4341 1391 8972 953 592 454 7711 524 8224 127...
output:
1273 703 53 174 195 1092 1807 517 789 1823 1014 423 991 1060 1800 350 769 1484 1428 704 795 492 1229...
result:
wrong answer Wrong answer!
Test #5:
score: 0
Wrong Answer
time: 0ms
memory: 1312kb
input:
2000 9788123 296 3976 154 3441 78 9146 1443 6444 1799 2843 1482 6843 1526 3159 1956 9324 1442 1001 5...
output:
1254 762 725 67 1669 1837 1146 694 223 1735 1651 1228 358 1005 811 1180 1094 1150 1008 1158 688 925 ...
result:
wrong answer Wrong answer!
Test #6:
score: 0
Wrong Answer
time: 85ms
memory: 8880kb
input:
200000 87654321 33240 503 90721 868 64272 858 170928 616 92246 213 50575 59 148252 954 87639 739 328...
output:
126628 73804 17733 18542 99550 66108 35776 45559 66218 128891 163690 46651 168721 94405 35516 156715...
result:
wrong answer Wrong answer!
Test #7:
score: 0
Wrong Answer
time: 100ms
memory: 8880kb
input:
200000 987654321 199051 7573 6332 5631 35615 9816 185684 9227 198894 8029 185684 2173 54203 2887 107...
output:
125813 74997 130989 74944 134505 23020 162221 198760 42096 30257 26517 160938 187451 34552 154229 19...
result:
wrong answer Wrong answer!
Test #8:
score: 0
Wrong Answer
time: 211ms
memory: 20664kb
input:
444444 998244353 243276 2272 436596 1761 70822 1547 263965 942 280972 2658 87160 421 268504 2945 103...
output:
281555 163515 410574 278320 413312 360643 264334 441315 226535 136240 417327 428445 25162 185812 168...
result:
wrong answer Wrong answer!
Test #9:
score: 0
Wrong Answer
time: 320ms
memory: 21984kb
input:
500000 999999999 131412 807 486292 804 462352 1139 52896 196 426775 1655 18059 2099 224414 1308 2851...
output:
318939 162509 299782 269073 53258 96411 258580 147942 459423 418440 421364 375045 70097 403650 29066...
result:
wrong answer Wrong answer!
Test #10:
score: 0
Wrong Answer
time: 276ms
memory: 17764kb
input:
500000 1000000000 42362 5090 327916 7618 221602 679 295161 1419 69703 4221 108614 6788 210597 6940 2...
output:
114101 277535 481176 162184 172853 129939 473585 69113 135869 142744 60258 354871 55924 428396 35075...
result:
wrong answer Wrong answer!