Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Noul format Jpegli iși propu...

Dade, dade

Parola la lock screen

Deparazitare externa pisici fara ...
 Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle

Problema mare cu parintii= nervi ...
 switch microtik

Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...

Crapaturi placa
 cum imi accesez dosarul electroni...

Momentul Aprilie 1964

Sursa noua - zgomot ?

A fost lansat Ubuntu 24.04 LTS
 

[TEMA] problema vraji

- - - - -
  • Please log in to reply
8 replies to this topic

#1
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
http://campion.edu.r...ion=view&id=827

#include <iostream>
#include <fstream>
using namespace std;;
ifstream fin("vraji.in");
ofstream fout("vraji.out");

int main()
{
	int a,b,p,v,n,i,prod[100],max,j,min;
	fin>>n;
	fin>>p>>v;
	max=p*v;
	prod[0]=max;
	for (i=1;i<n;i++)
		{
			fin>>p>>v;
			prod[i]=p*v;
			if (prod[i]>prod[i-1]) max=prod[i];
		}
	min = 0;
	a=prod[0];
	for (i=1;i<n;i++)
		{
			b=prod[i];
			while (a!=B)
				{
					if (a>B) a=a-b; else if(a<B) b=b-a;
				}
			if (a>min) min=a;
		}
	fout<<max<<endl;
	fout<<min;
	fin.close();
	fout.close();
	return 0;
}


40 din 100. cine ma poate ajuta sa-mi arate ce-am gresit?

#2
MikeD

MikeD

    Member

  • Grup: Members
  • Posts: 605
  • Înscris: 04.09.2013
Ce eroare primești la răspunsuri?

#3
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
wrong answer

#4
Ersaro

Ersaro

    Junior Member

  • Grup: Members
  • Posts: 65
  • Înscris: 15.09.2009
1)
if (prod[i]>prod[i-1]) max=prod[i];

Nu trebuie sa compari prod[i] cu precedentul, ci cu maximul universal.
Iti dau un exemplu, ai 1, 5, 30, 10, 20.
Programul il va face maxim pe 5, apoi pe 30, peste 10 va trece, dar va vedea ca 20 este mai mare decat 10 si il va pastra ca maxim.

2)
if (a>min) min=a;

Daca programul tau gaseste primul cmmdc si e mai mare decat 0(normal) il modifica bine pe min. Dar a-ul tau nu are cum sa creasca pentru ca il tot transformi intre cmmdc-ul dintre el si urmatorul numar. In cel mai bun caz ramane constant, dar este posibil sa si scada, daca ai gasit un nou cmmdc mai mic care se transforma in cmmdc-ul universal. Incearca sa scoti linia asta, sa stergi variabila min si sa afisezi doar a-ul la sfarsit.

Edited by Ersaro, 21 August 2014 - 03:16.


#5
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
am facut asa, am luat 100. dar tot nu inteleg ceva

	a=prod[0];
	for (i=1;i<n;i++)
		{
			b=prod[i];
			while (a!=B)
				{
					if (a>B) a=a-b; else if(a<B) b=b-a;
				}
		}


eu inteleg asa. ia primul produs si apoi pe rand pe toate celelalte si face cmmdc. dar pe exemplul

3
4 2
6 6      (al doilea de pe campion cu ultimele 2 schimbate)
6 8

cmmdc intre primul (4*2=8) si ultimul (6*8=48)  e 8 nicidecum 4. si e gresit.

#6
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Posted Image  citeste si tu explicatiile :

3 - ‘elevi vrăjitori’
elev 1 : Număr total de obiecte =4*2=8
elev 2 : Număr total de obiecte=6*8=48
elev 3 : Număr total de obiecte=6*6=36
48 este cel mai mare număr de obiecte aduse de un vrăjitor
4 este cel mai mare număr de cutii pe care îl poate primi fiecare elev

4=cmmdc(8,48,36).

E adevarat ca cmmdc(8,48)=8 dar cmmdc(cmmdc(8,48),36)=4.Tu faci cmmdc a tuturor numerelor obtinute,nu cmmdc a doua cate doua.

#7
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
da, adevarat. dar sursa nu memoreaza ceea ce ai spus tu. 2 cate 2 . primul cu al doilea. primul cu al treilea etc. ci doar primul cu ultimul. si totusi am luat 100p

#8
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Mah,din cate am vazut pe cod tu pastrezi in a cmmdc-ul minim.Faci cmmdc(a,celelalte valori din vector).
Tu nu vezi ca ai un for acolo ? Iei prod[0] si in el pastrezi cmmdc-ul tuturor.
prod[0]=cmmdc[prod[0],prod[1])
apoi prod[0]=cmmdc[prod[0],prod[2]),unde prod[0] e deja cmmdc[prod[0],prod[1])
si asa in prod[0] memorezi cmmdc-ul tuturor elementelor din vector.Tu cum ai scris algoritmul ala fara sa te gandesti la el ?

#9
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
gata, m-am prins. norocus chiorus :))

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate