3003 | 2023. 02. 08 07:59:27 | bzsofia | Benzinkút üzemeltetés (55) | cpp11 | Elfogadva 55/55 | 3ms | 3824 KiB |
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
struct adat
{
int elott, tav, sum;
bool epit;
};
int n, i, j, mintav;
deque <int> v;
int main()
{
cin>>n>>mintav;
vector <adat> x(n+1);
for (i=1; i<=n; ++i)
{
cin>>x[i].tav>>x[i].sum;
j=i-1;
while (j>=1 && x[i].tav-x[j].tav<mintav)
{
--j;
}
if (x[j].sum+x[i].sum>x[i-1].sum)
{
x[i].epit=1;
x[i].sum+=x[j].sum;
if (x[j].epit) x[i].elott=j;
else x[i].elott=x[j].elott;
if (i==n) v.push_back(n);
}else
{
x[i].sum=x[i-1].sum;
if (x[i-1].epit) x[i].elott=i-1;
else x[i].elott=x[i-1].elott;
x[i].tav=x[i-1].tav;
}
}
cout<<x[n].sum<<"\n";
i=n;
while (x[i].elott!=0)
{
v.push_front(x[i].elott);
i=x[i].elott;
}
cout<<v.size()<<" ";
for (auto &e:v)
{
cout<<e<<" ";
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1808 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2080 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2272 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2476 KiB | |||
5 | Elfogadva | 3/3 | 2ms | 2452 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2688 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2896 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 2976 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3064 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3144 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3276 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3428 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3604 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3724 KiB | |||
15 | Elfogadva | 5/5 | 3ms | 3744 KiB | |||
16 | Elfogadva | 6/6 | 3ms | 3696 KiB | |||
17 | Elfogadva | 6/6 | 3ms | 3824 KiB |