225342026-01-15 10:46:29bombinigusiniMunkákcpp17Time limit exceeded 20/80685ms1812 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#pragma optimize(o3)
using namespace std;
struct munka{int index; int penz; int sorszam;};
bool id(munka a, munka b)
{
    if(a.index==b.index) return a.penz<b.penz;
    else return a.index<b.index;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n, m;
    cin>>n>>m;
    vector <munka> t(m);
    for(int i=0; i<m; i++)
    {
        cin>>t[i].index;
        cin>>t[i].penz;
        t[i].sorszam=i;
    }
    sort(t.begin(), t.end(), id);
    for(int i=0; i<m; i++)
    {
        if(t[i+1].index==t[i].index)
        {
            t.erase(t.begin()+i);
            i--;
            m--;
        }
    }
    for (int i=0; i<t.size()-1; i++)
    {
        if(t[i+1].index-t[i].index>1)
        {
            t.insert(t.begin()+i+1, {t[i].index+1, 0});
        }
    }
    vector <int> tempbest(t.size());
    vector <bool> valaszt(t.size(), false);
    vector <int> elozo(t.size());
    tempbest[0]=t[0].penz;
    elozo[0]=-1;
    valaszt[0]=true;
    tempbest[1]=max(tempbest[0], t[1].penz);
    if(tempbest[1]!=tempbest[0])
    {
        valaszt[1]=true;
        elozo[1]=-1;
    }
    else elozo[1]=0;
    for(int i=2; i<=t.size(); i++)
    {
        if(tempbest[i-1]<t[i].penz+tempbest[i-2])
        {
            valaszt[i]=true;
            elozo[i]=i-2;
        }
        tempbest[i]=max(tempbest[i-1], t[i].penz+tempbest[i-2]);
    }
    vector <int> napok;
    int curr=t.size();
    while (curr>-1)
    {
        if(valaszt[curr])
        {
            napok.push_back(t[curr].sorszam+1);
            curr=elozo[curr];
        }
        else curr--;
    }
    reverse(napok.begin(), napok.end());
    cout<<tempbest[tempbest.size()]<<" "<<napok.size()<<endl;
    for(int s:napok)
    {
        cout<<s<<" ";
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Time limit exceeded680ms1588 KiB
subtask210/10
3Accepted1ms500 KiB
4Accepted1ms316 KiB
5Accepted1ms500 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
subtask30/10
8Wrong answer1ms316 KiB
9Wrong answer1ms316 KiB
10Wrong answer1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
subtask410/10
13Accepted1ms500 KiB
14Accepted1ms316 KiB
15Accepted1ms500 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Accepted1ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms316 KiB
21Accepted1ms512 KiB
22Accepted1ms316 KiB
subtask50/10
23Wrong answer1ms316 KiB
24Wrong answer1ms316 KiB
25Wrong answer1ms316 KiB
26Accepted1ms316 KiB
27Accepted1ms316 KiB
28Accepted1ms316 KiB
29Accepted1ms316 KiB
30Accepted1ms564 KiB
31Accepted1ms564 KiB
32Accepted1ms564 KiB
subtask60/10
33Accepted1ms500 KiB
34Accepted1ms316 KiB
35Accepted1ms500 KiB
36Accepted1ms316 KiB
37Accepted1ms316 KiB
38Wrong answer1ms316 KiB
39Wrong answer1ms316 KiB
40Wrong answer1ms316 KiB
41Accepted1ms316 KiB
42Accepted1ms316 KiB
43Accepted1ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms316 KiB
46Accepted1ms512 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms564 KiB
51Accepted1ms564 KiB
52Accepted1ms564 KiB
53Wrong answer2ms748 KiB
54Accepted2ms752 KiB
55Accepted2ms748 KiB
56Wrong answer2ms564 KiB
57Accepted1ms564 KiB
subtask70/10
58Accepted1ms500 KiB
59Accepted1ms316 KiB
60Accepted1ms500 KiB
61Accepted1ms316 KiB
62Accepted1ms316 KiB
63Wrong answer1ms316 KiB
64Wrong answer1ms316 KiB
65Wrong answer1ms316 KiB
66Accepted1ms316 KiB
67Accepted1ms316 KiB
68Accepted1ms316 KiB
69Accepted1ms316 KiB
70Accepted1ms316 KiB
71Accepted1ms512 KiB
72Accepted1ms316 KiB
73Accepted1ms316 KiB
74Accepted1ms316 KiB
75Accepted1ms564 KiB
76Accepted1ms564 KiB
77Accepted1ms564 KiB
78Wrong answer2ms748 KiB
79Accepted2ms752 KiB
80Accepted2ms748 KiB
81Wrong answer2ms564 KiB
82Accepted1ms564 KiB
83Wrong answer259ms1588 KiB
84Accepted259ms1540 KiB
85Wrong answer257ms1536 KiB
86Accepted257ms1528 KiB
87Accepted259ms1548 KiB
subtask80/20
88Accepted1ms500 KiB
89Accepted1ms316 KiB
90Accepted1ms500 KiB
91Accepted1ms316 KiB
92Accepted1ms316 KiB
93Wrong answer1ms316 KiB
94Wrong answer1ms316 KiB
95Wrong answer1ms316 KiB
96Accepted1ms316 KiB
97Accepted1ms316 KiB
98Accepted1ms316 KiB
99Accepted1ms316 KiB
100Accepted1ms316 KiB
101Accepted1ms512 KiB
102Accepted1ms316 KiB
103Accepted1ms316 KiB
104Accepted1ms316 KiB
105Accepted1ms564 KiB
106Accepted1ms564 KiB
107Accepted1ms564 KiB
108Wrong answer2ms748 KiB
109Accepted2ms752 KiB
110Accepted2ms748 KiB
111Wrong answer2ms564 KiB
112Accepted1ms564 KiB
113Wrong answer259ms1588 KiB
114Accepted259ms1540 KiB
115Wrong answer257ms1536 KiB
116Accepted257ms1528 KiB
117Accepted259ms1548 KiB
118Time limit exceeded685ms1588 KiB
119Time limit exceeded685ms1588 KiB
120Time limit exceeded685ms1396 KiB
121Time limit exceeded685ms1588 KiB
122Time limit exceeded675ms1780 KiB
123Time limit exceeded676ms1812 KiB
124Time limit exceeded676ms1588 KiB
125Time limit exceeded676ms1588 KiB
126Time limit exceeded679ms1588 KiB
127Time limit exceeded677ms1588 KiB