Submission #870063

#TimeUsernameProblemLanguageResultExecution timeMemory
870063MatjazTeams (CEOI11_tea)C++14
0 / 100
365 ms29116 KiB
// // CEOI11_TEA.cpp // // // Created by Matjaz Leonardis on 06/11/2023. // #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ int N; cin >> N; vector<pair<int,int> > a(N); for (int i=0;i<N;i++){ cin >> a[i].first; a[i].second = i + 1; } sort(a.begin(), a.end()); vector<int> max_teams(N); vector<int> label(N); if (a[0].first == 1) { max_teams[0] = 1; label[0] = 1; } else max_teams[0] = 0; for (int i=1;i<N;i++){ max_teams[i] = max_teams[i-1]; if (i + 1 - a[i].first == 0 && max_teams[i] < 1){ max_teams[i] = 1; label[i] = 1; } if (i + 1 - a[i].first > 0 && max_teams[i] < 1 + max_teams[i-a[i].first] ){ max_teams[i] = 1 + max_teams[i-a[i].first]; label[i] = 1; } } cout << max_teams[N-1] << endl; //for (int i=0;i<N;i++) cout << label[i] << " "; cout << endl; for (int ptr=N-1;ptr>=0;ptr--){ if (label[ptr] != 0){ cout << a[ptr].first; for (int i=0;i<a[ptr].first;i++){ cout << " " << a[ptr - i].second; } cout << endl; ptr -= a[ptr].first - 1; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...