Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 307 Maxsecv : Februarie 29, 2012, 14:22:57
se poate un test mai... complicat? mie imi da corect pe toate testele din comentarii si totusi iau 10 puncte Confused
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1218 Edist : Februarie 29, 2012, 09:16:33
iau 90 cu WA la testul 7 Confused ce e asa special la el ?
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 821 Expresie : Martie 16, 2011, 10:38:41
trebuia sa declar vectorul cu long long  Very Happy
eh, sunt incepator
mersi Smile
4  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 821 Expresie : Martie 15, 2011, 23:56:21
testul 1 este
5
12
5
1
3
5

metoda la care m-am gandit este sa fac maximul a 3 elemente citite consecutiv si inca 2 maximuri a cate 2 elemente citite consecutiv, respectiv le retin indicii.
pt exemplul de sus ar fi max1=12*5*1 (maximul a 3 elemente) si max2=12*5 si max3=3*5( celelalte 2 maximuri).
intreb care e mai mare (max1 sau max2+max3)
pun intr-un S pe cel mai mare, si fac, cu ajutorul indicilor retinuti mai sus, elementele inmultite ale numarului mai mare egale cu 0 in vectorul in care am citit toate numerele.
daca initial este v: 12 5 1 3 5, dupa va fi v: 0 0 1 0 0
apoi fac suma.
nu prea ma  pricep sa explic, sunt si in clasa a 9a (am inceput informatica de anul asta) asa ca ... Fool

EDIT:
Cod:
#include<fstream.h>
int a[1001];
int main()
{
int n,x,i,k1,k2,k3,k4,k5,k6,k7;
long long max1=0,max2=0,max3=0,s=0;
ifstream f("expresie.in");
ofstream g("expresie.out");
f>>n;
k1=k2=k3=k4=k5=k6=k7=0;
for (i=1;i<=n;i++)
f>>a[i];
for (i=2;i<=n-1;i++)
{
if (a[i-1]*a[i]*a[i+1]>max1)
{
max1=a[i-1]*a[i]*a[i+1];
k1=i-1;
k2=i;
k3=i+1;
}
if (a[i]>max2)
{
max3=max2;
max2=a[i];
k5=k4;
k4=i;
}
else if (a[i]>max3)
{
max3=a[i];
k5=i;
}
}
if (a[k4]*a[k4+1]>a[k4-1]*a[k4]) {max2=a[k4]*a[k4+1];k6=k4+1;}
else {max2=a[k4]*a[k4-1];k6=k4-1;}
if (a[k5]*a[k5+1]>a[k5-1]*a[k5]) {max3=a[k5]*a[k5+1];k7=k5+1;}
else {max3=a[k5]*a[k5-1];k7=k5-1;}
if (max2+max3>max1)
{
a[k4]=0;
a[k5]=0;
a[k6]=0;
a[k7]=0;
s+=max2+max3;
}
else
{
a[k1]=0;
a[k2]=0;
a[k3]=0;
s+=max1;
}
for (i=1;i<=n;i++)
s+=a[i];
g<<s;
f.close();
g.close();
return 0;
}
EDIT II:
am vazut unde buseam:D eu aflam cele mai mari 2 numere nu produsul cel mai mare a 2 numere consecutive ... mda, mersi oricum Smile 80p, gresit testul 7 si 8 unde cred ca trebuie facut cu suma si produs de numere mari (in vector).
5  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 821 Expresie : Martie 12, 2011, 07:46:31
iau 60 de puncte, imi da gresit si la primul test  Huh
daca bag manual testele imi afiseaza bine si, bineinteles, se incadreaza si in timp  Read This!
care ar fi problema?
http://infoarena.ro/job_detail/541993
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines