198072025-12-23 21:54:46LacikaKvDíjazás több helyezettnekcpp17Forditási hiba
#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;
}
Forditási hiba
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;
      |          ^~~~~~~~~~