7818 | 2024. 01. 11 11:51:01 | Tunde | Benzinkút üzemeltetés (55) | cpp17 | Elfogadva 55/55 | 8ms | 11688 KiB |
#include <iostream>
using namespace std;
struct piheno
{
int s, d, h;
};
int main()
{
int n, k;
cin >> n >> k;
piheno t[n];
int a[n][n];
int h[n];
for(int i=0; i<n; i++)
{
cin >> t[i].d >> t[i].h;
h[i]=0;
for(int j=0; j<n; j++)
{
a[i][j]=0;
}
}
for(int i=0; i<n; i++)
{
if(i==0)
{
a[0][0]=1;
h[0]=t[0].h;
}
else
{
int x=0, l1=0, l2=0, w1=-1, w2=-1;
for(int j=i-1; j>=0 && x==0; j--)
{
if(t[i].d-t[j].d>=k)
x=j+1;
}
for(int j=x; j<i; j++)
{
if(h[j]>l2)
{
l2=h[j];
w2=j;
}
}
if(x!=0)
{
for(int j=x-1; j>=0; j--)
{
if(h[j]>l1)
{
l1=h[j];
w1=j;
}
}
}
if(w1==-1)
{
if(t[i].h>l2)
{
h[i]=t[i].h;
a[i][i]=1;
}
else
{
h[i]=h[w2];
for(int j=0; j<=w2; j++)
{
a[j][i]=a[j][w2];
}
}
}
else
{
if(h[w2]>(t[i].h+h[w1]))
{
h[i]=h[w2];
for(int j=0; j<=w2; j++)
{
a[j][i]=a[j][w2];
}
}
else
{
h[i]=h[w1]+t[i].h;
for(int j=0; j<=w1; j++)
{
a[j][i]=a[j][w1];
}
a[i][i]=1;
}
}
}
}
cout << h[n-1] << endl;
int db=0;
for(int i=0; i<n; i++)
{
if(a[i][n-1]==1)
++db;
}
cout << db << " ";
for(int i=0; i<n; i++)
{
if(a[i][n-1]==1)
cout << i+1 << " ";
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2020 KiB | |||
2 | Elfogadva | 0/0 | 8ms | 10156 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2560 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2768 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2868 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2924 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 3136 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 3500 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3696 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3656 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3696 KiB | |||
12 | Elfogadva | 3/3 | 4ms | 5768 KiB | |||
13 | Elfogadva | 4/4 | 4ms | 6600 KiB | |||
14 | Elfogadva | 4/4 | 6ms | 7648 KiB | |||
15 | Elfogadva | 5/5 | 7ms | 8620 KiB | |||
16 | Elfogadva | 6/6 | 8ms | 10112 KiB | |||
17 | Elfogadva | 6/6 | 8ms | 11688 KiB |