Am de făcut o problema ,dar nustiu cum sa o fac .Va rog frumos ajutatima.
Un șomer, pentru a supraviețui s-a gândit să facă business cu propriul său păr. Punctele de recepţie cumpără păr de orice lungime cu C u.c. pentru fiecare centimetru. Deoarece piaţa de păr este foarte dinamică, preţul unui centimetru de păr se schimbă în fiecare zi, ca şi cursul valutar. Fiind un bun business analist, şomerul a calculat care va fi preţul unui centimetru de păr în fiecare din următoarele N zile ( pentru comoditate, enumerăm zilele în ordine cronologică de la 0 la N-1 ). Acum şomerul vrea să determine, în care din aceste zile el trebuie să-şi vândă părul, că în aceste N zile să obţină un venit maximal. Se ştie că părul la el creşte numai noaptea şi creşte cu 1 centimetru. Se mai ştie că la început el era chel şi la sfârşitul zilei 0 ave un păr de lungimea 1 centimetru.
Date de intrare
În prima linie a fişierului de intrare INPUT.TXT e scris numărul întreg N (0 < N ≤ 100). În a doua linie sunt scrise N numere naturale separate prin spaţii, care nu depăşesc 100 şi corespund preţurilor C a unui centimetru de păr în fiecare zi i.
Date de ieşire
În unica linie a fişierului de ieşire OUTPUT.TXT scrieţi suma maximal de bani pe care o poate câştiga şomerul în N zile.
va rog frumos ajutatima!!
Re: va rog frumos ajutatima!!
Code: Select all
#include <fstream>
#include <sstream>
#include <string>
#include <iterator>
int main()
{
std::ifstream fIn;
std::ofstream fOut;
std::string N;
std::string linia2;
int iNumarZile = o;
int iPretMaxim = 0;
fIn.open("INPUT.TXT");
std::getline(fIn, N);
istringstream ( N ) >> iNumarZile;
std::getline(fIn, linia2);
std::istream_iterator<std::string> st(linia2), sf;
std::vector<std::string> preturi(st, sf);
for(int i=1; i <= iNumarZile; i++)
{
int z;
istringstream ( preturi[i-1] ) >> z;
if((z * i) > iPretMaxim) iPretMaxim = z * i;
}
fIn.close();
fOut.open("OUTPUT.TXT");
fOut << iPretMaxim << "\n";
fOut.close();
return 0;
}
If you think C++ is not overly complicated, just what is a
protected abstract virtual base pure virtual private destructor
and when was the last time you needed one? — Tom Cargill (1990)
protected abstract virtual base pure virtual private destructor
and when was the last time you needed one? — Tom Cargill (1990)
- Sylvie Woo
- Junior
- Posts: 12
- Joined: 18 Nov 2011, 13:02
Re: va rog frumos ajutatima!!
@MarianMMX solutia ta pare gresita. Tu faci o singura vanzare si ramai cu par in cap la sfarsit, ceea ce nu va duce la venitul maxim!
Corect e asa (dar nu cel mai eficient, desigur):
1. se cauta ziua cu cel mai bun pret (pretul maxim)
2. se vinde tot parul disponibil pe moment
3. daca mai sunt zile, se reia pasul 1 considerand acea zi ca ziua zero
(4. Se cumpara bere de toti banii obtinuti
)
Daca era vorba sa fie 1000000 de zile, sau posibil si mai multe, era mai interesanta problema!
Corect e asa (dar nu cel mai eficient, desigur):
1. se cauta ziua cu cel mai bun pret (pretul maxim)
2. se vinde tot parul disponibil pe moment
3. daca mai sunt zile, se reia pasul 1 considerand acea zi ca ziua zero
(4. Se cumpara bere de toti banii obtinuti

Daca era vorba sa fie 1000000 de zile, sau posibil si mai multe, era mai interesanta problema!
Re: va rog frumos ajutatima!!
Am modificat conform recomandarilor:
Code: Select all
#include <fstream>
#include <sstream>
#include <string>
#include <iterator>
int main()
{
std::ifstream fIn;
std::ofstream fOut;
std::string N;
std::string linia2;
int iNumarZile = 0;
int iPretMaxim = 0;
fIn.open("INPUT.TXT");
std::getline(fIn, N);
istringstream ( N ) >> iNumarZile;
std::getline(fIn, linia2);
std::istream_iterator<std::string> st(linia2), sf;
std::vector<std::string> preturi(st, sf);
while(preturi.size() > 0)
{
int iZ = 0;
int iP = 0;
for(int i=1; i <= preturi.size(); i++)
{
int z;
istringstream ( preturi[i-1] ) >> z;
if((z * i) > iP)
{
iP = z * i;
iZ = i;
}
}
iPretMaxim += iP;
preturi.erase(preturi.begin(), preturi.begin()+i-1);
}
fIn.close();
fOut.open("OUTPUT.TXT");
fOut << iPretMaxim << "\n";
fOut.close();
return 0;
}
If you think C++ is not overly complicated, just what is a
protected abstract virtual base pure virtual private destructor
and when was the last time you needed one? — Tom Cargill (1990)
protected abstract virtual base pure virtual private destructor
and when was the last time you needed one? — Tom Cargill (1990)