| 19807 | 2025-12-23 21:54:46 | LacikaKv | Díjazás több helyezettnek | cpp17 | Compilation error |
#include <iostream>
#include <vector>
///csokkeno sorrendben kell kiiratni
using namespace std;
void KiirDijak(int ndijak, vector<int> dijak)
{
for (int i=0; i<ndijak; i++) {
if (i) cout << " ";
cout << dijak[i];
}
cout << endl;
}
void Oszdszet(int ndijak, int pos, int oszd,vector<int> indijak)
{
if (pos == (ndijak-1)) {
indijak[pos] += oszd;
if (indijak[pos-1] > indijak[pos]) {
KiirDijak(ndijak,indijak);
}
} else {
int tovabb = 0;
int marad = oszd;
do {
ujposertek = indijak[pos] + marad;
if ((pos == 0) || (indijak[pos-1] > ujposertek)) {
// fontos hogy csak egy masolatot modositsunk ami felszabadul azonal ha befejeztuk vele a munkat.
// a vector = operatora egy masolo operator!
vector<int> dijak = indijak;
dijak[pos] += marad;
Oszdszet(ndijak, pos+1,tovabb,dijak);
}
tovabb++;
marad--;
} while(marad>=0);
}
}
int main()
{
int nDijazottak,dijOsszeg,reszdij;
cin >> nDijazottak;
cin >> dijOsszeg;
// cout << "Dijazottak szama:";
// cout << nDijazottak;
// cout << endl;
// cout << "Dijak osszege:";
// cout << dijOsszeg;
// cout << endl;
// alapdijak
vector<int> dijak(nDijazottak, 0);
for (int i=0;i<nDijazottak;i++) {
dijak[i] = nDijazottak-i;
}
// a maradek amit meg ki kell osztani
reszdij = dijOsszeg - (nDijazottak*(nDijazottak+1))/2;
// cout << "Kiosztando meg:";
// cout << reszdij;
// cout << endl;
// KiirDijak(nDijazottak,dijak);
Oszdszet(nDijazottak,0,reszdij,dijak);
return 0;
}
open /var/local/lib/isolate/417/box/a.out: no such file or directory
main.cpp: In function 'void Oszdszet(int, int, int, std::vector<int>)':
main.cpp:27:10: error: 'ujposertek' was not declared in this scope
27 | ujposertek = indijak[pos] + marad;
| ^~~~~~~~~~