Pagini recente » Cod sursa (job #2596646) | Cod sursa (job #2610875) | Cod sursa (job #919559) | Cod sursa (job #2858723) | Cod sursa (job #1987295)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,aux,baza,a[1000],i,j;
bool ok=false;
ifstream fin("pietre.in");
ofstream fout("pietre.out");
cout<<" Tu esti un Faraon si trebuie sa-ti pui sclavii sa construiasca o latura de piramida in forma de triunghi, formata "
"din pietre de diferite dimensiuni si greutati.Piramida trebuie sa fie stabila, asa ca pietrele cu cea mai mare greutate"
" vor sta la baza triunghiului.Tu trebuie doar sa le spui sclavilor cate pietre sa contina baza triunghiului."<<endl<<
" Fa un algoritm in care sa reusesti sa construiesti o latura de piramida. Urmeaza exemplul: "<<endl<<endl<<
" Exemplu:"<<endl<<
"Tu spui baza 3 iar in pietre.in se afla: 89 78 67 98 90 97 67 78 59 ... "<<endl<<
"pietre.out:"<<endl<<
"67"<<endl<<
"78 89"<<endl<<
"90 97 98"<<endl<<
"(greutatile pietrelor vor fi date in fisierul pietre.in, ele vor fi incadrate intre 50 si 100 de kilograme)"<<endl<<endl<<
"Pietre.in: greutatile pietrelor"<<endl<<
"Pietre.out: latura de piramida asezata ca in exemplu"<<endl<<
"Succes !"<<endl;
cout<<"Numarul pietrelor de la baza este: ";
cin>>baza;
n=0;
aux=baza;
while (aux>=1)
{
n=n+aux;
aux--;
}
for (i=1;i<=n;i++)
fin>>a[i];
while (ok==false)
{
ok=true;
for (i=2;i<=n;i++)
if (a[i-1]>a[i])
{
aux=a[i];
a[i]=a[i-1];
a[i-1]=aux;
ok=false;
}
}
fout<<a[1];
fout<<endl;
i=2;
for (aux=2;aux<=baza;aux++)
{
for (j=1;j<=aux;j++)
{
fout<<a[i]<<" ";
i++;
}
fout<<endl;
}
fin.close();
fout.close();
return 0;
}