infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Andrei Grigorean din Octombrie 17, 2011, 15:57:22



Titlul: 1216 Crescator
Scris de: Andrei Grigorean din Octombrie 17, 2011, 15:57:22
Aici puteţi discuta despre problema Crescator (http://infoarena.ro/problema/crescator).


Titlul: Răspuns: 1216 Crescator
Scris de: Petru Trimbitas din Octombrie 20, 2011, 16:56:37
o mica greseala :
Citat
numere naturale intregi


Titlul: Răspuns: 1216 Crescator
Scris de: Andrei Dinu din Noiembrie 10, 2011, 22:22:31
Nu cumva cea mai lunga secventa crescatoare este 1 2 4 5 ?  :D


Titlul: Răspuns: 1216 Crescator
Scris de: Andrei Dinu din Noiembrie 10, 2011, 22:27:56
Scuze, am facut o mica confuzie, m-am lamurit!


Titlul: Răspuns: 1216 Crescator
Scris de: Mihai Visuian din Ianuarie 22, 2012, 17:22:32
ce au special primele 3 teste? Iau incorect doar pe ele


Titlul: Răspuns: 1216 Crescator
Scris de: FMI Razvan Birisan din Iunie 28, 2012, 11:54:15
Nu sunt sigur dacă am înÈ›eles problema.  :?
Pentru:
In:
Cod:
6
1 2 3 4 5 6
Out:
Cod:
21
6

Cele 21 de secvențe:

1
12
123
1234
12345
2
23
234
2345
23456
3
34
345
3456
4
45
456
5
56
6

 ???
?

În fiecare șir sunt cel puțin n secvențe crescătoare?

in:
Cod:
5
5 4 3 2 1
out:
Cod:
5
1

in:
Cod:
 10
1 2 3 4 5 4 3 1 2 3
out:
Cod:
23
5
:?
?


Titlul: Răspuns: 1216 Crescator
Scris de: Dumitru Andrei Georgian din Iunie 28, 2012, 16:09:48
Da, ai minim n secvente crescatoare. E corect ce iti da pe acele teste.


Titlul: Răspuns: 1216 Crescator
Scris de: Boaca Cosmin din Iunie 28, 2012, 16:50:45
Cod:
l * l - (l * ( l - 1))/2 
In codul tau rezultatul intermediar (l * l) si rezultatul final poate depasi tipul int. Incearca sa folosesti long long.


Titlul: Răspuns: 1216 Crescator
Scris de: FMI Razvan Birisan din Iunie 29, 2012, 12:23:41
Nu era asta :sad: . Sigur greÈ™eala e la algoritm,dar nu găsesc niciun test pentru care să nu meargă.Mă puteÈ›i ajuta?  :oops:


Titlul: Răspuns: 1216 Crescator
Scris de: Dumitru Andrei Georgian din Iunie 29, 2012, 12:52:15
Pe testul
Cod:
10
1 2 3 5 4 4 3 1 2 6
iti pica solutia. Raspunsul e 20 4, iar tie iti da 19 4.


Titlul: Răspuns: 1216 Crescator
Scris de: FMI Razvan Birisan din Iunie 29, 2012, 15:01:08
" 4  4 " este o secvență crescătoare? ???


Am făcut o modificare și pentru testul tău obțin:
Cod:
20
4

:eyebrow:
Dar tot iau 0 puncte.Mai poÈ›i să-mi dai un test?  :-s


Titlul: Răspuns: 1216 Crescator
Scris de: Dumitru Andrei Georgian din Iunie 30, 2012, 22:34:51
Algoritmul e bun. Aparent problema vine de la afisare. Tu dai enter dupa ce afisezi prima valoare si dupa o afisezi pe a doua. Trebuie sa afisezi cum arata si exemplul, adica sa pui spatiu intre cele doua valori. E aiurea ca se intampla asta. Ar trebui facut un eval pentru problema asta ca sa nu se mai intample chestii de genul.


Titlul: Răspuns: 1216 Crescator
Scris de: FMI Razvan Birisan din Iunie 30, 2012, 22:37:16
Nu pot să cred că am greșit asta. ](*,)
Mulțumesc pentru ajutor. :thumbup:


Titlul: Răspuns: 1216 Crescator
Scris de: Dumitru Andrei Georgian din Iunie 30, 2012, 22:40:45
In enunt nu e preciat cum sa le afisezi, iar de obicei nu conteaza cum le afisezi atata timp cat sunt valori intregi.

LE: Gata, s-a modificat enuntul. :ok:


Titlul: Răspuns: 1216 Crescator
Scris de: CHIRILA ADRIAN din Aprilie 09, 2013, 10:34:24
Cod:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("crescator.in");
ofstream g("crescator.out");
int main()
{
    int n,v[100000],i,max=1,s,j,nr;
    bool ok;
    f>>n;
    for(i=1; i<=n; i++)
        f>>v;
    f.close();
    s=n;
    for(i=1; i<=n-1; i++)
    {
        j=i;ok=1;nr=0;
           do
        {
            j++;
            if (v[j]>v[j-1])
              { s++; nr++;}
               else ok=0;
               if (nr>max) max=nr;
        }
        while (ok);
        }
        if (max>1) max++;
        g<<s<<" "<<max;
        g.close();
        return 0;
}
Obtin doar 40 de puncte..complexitatea e cu mult mai mica decat O(nxn).O mica idee cineva?


Titlul: Răspuns: 1216 Crescator
Scris de: Pirtoaca George Sebastian din Aprilie 09, 2013, 11:51:44
Complexitatea e O(n*n). Gandeste-te ce se intampla cand ai sirul 1,2,3, ... ,n-1,n.


Titlul: Răspuns: 1216 Crescator
Scris de: CHIRILA ADRIAN din Aprilie 09, 2013, 12:12:00
Si cum as putea optimiza algoritmul?


Titlul: Răspuns: 1216 Crescator
Scris de: FMI Razvan Birisan din Aprilie 09, 2013, 13:04:50
Cu putina matematica :-'
Complexitatea e O(n*n). Gandeste-te ce se intampla cand ai sirul 1,2,3, ... ,n-1,n.


Titlul: Răspuns: 1216 Crescator
Scris de: Dospra Cristian din Mai 15, 2013, 10:25:01
Imi da WA pe ultimul test, cineva vreo idee va rog?   :roll:


Titlul: Răspuns: 1216 Crescator
Scris de: Mercea Otniel din Septembrie 14, 2013, 13:33:20
cum pot sa optimizez problema ca nici cum nu imi dau seama?
#include<iostream>
using namespace std;
#include<stdio.h>
FILE *f,*g;
long n,i,j,nr,lungime,maxim=1;
long a[100001];
int main()
{
    f=fopen("crescator.in","r");
    g=fopen("crescator.out","w");
    fscanf(f,"%ld\n",&n);
    nr=n;
    for(i=1;i<=n;i++)
        fscanf(f,"%ld",&a);
    for(i=1;i<=n;i++)
    {lungime=1;
        for(j=i+1;j<=n;j++)
            if(a[j]>a[j-1])
                {nr++;
                lungime++;}
            else
               break;
               if(j==n)
                i=n;
               if(lungime>maxim)
                maxim=lungime;
    }

   fprintf(g,"%d %d",nr,maxim);
}


Titlul: Răspuns: 1216 Crescator
Scris de: Alexandru Valeanu din Septembrie 14, 2013, 13:45:05
Nu prea ai ce optimiza socotind faptul ca tu ai o solutie de complexitate O(N^2), ce in aceasta problema nu poate lua 100p. Incearca sa te gandesti asa: daca ai o secventa de exemplu: 1,2,3; ai de fapt 6 secvente crescatoare: {1},{2},{3},{1,2},{2,3},{1,2,3}. Incearca sa deduci o formula de aici. Oricum daca nu reusesti ai solutiile oficiale aici: http://www.infoarena.ro/girls-programming-camp-2011/selectie/solutii; Succes!


Titlul: Răspuns: 1216 Crescator
Scris de: Mercea Otniel din Septembrie 14, 2013, 14:02:28
am dedus formlua pana la urma si fara solutii dar multumesc oricum :D