Probleme de informatică
  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

   Home Admitere UBB Bacalaureat 2016   |   Variante bacalaureat 2009   |   Atestat  |   Olimpiada       
Noutăţi
Subiecte admitere la Facultatea de informatica UBB Cluj-Napoca
Subiecte bacalaureat 2010-2018
Bacalaureat 2018 - competenţe digitale
C# - Windows Form Application - exemple
Modele de proiecte de atestat
Bacalaureat 2018
Subiecte si rezolvări 2010-2018
Rezolvari variante bacalaureat 2009
Competenţe digitale
Examen atestat
Rezumat documentatie
php.doc
css.doc
exemple_php_si_css.rar
Modele de proiecte de atestat
Olimpiada
Clasele V-VI
Clasele VII-VIII
Clasa a IX-a
Clasa a X-a
Clasele XI-XII
Noţiuni teoretice
Metode de sortare
Metoda backtracking


Subiect-Concurs Mate-Info-2013 - Subiectul III


#include<iostream>
using namespace std;

void citire(int &n, int X[100])
{//citeste pe n si elementele vectorului X
	cin>>n;
	for(int i=1; i<=n; i++)
		cin>>X[i];
}

int prefix (int n, int m)
{//verifica daca n e prefix al lui m
    if(n>=m) return 0;//nu e prefix daca n>m
    while(m>n) m=m/10;//tai repetat ultima cifra din m cat timp m>n
    if(m==n) return 1;//am ajuns la n, deci n e prefix al lui m
    else return 0;//altfel nu e prefix
}

void afisare(int a[],int i, int j)
{//afiseaza secventa de la i la j din vectorul a
    for(int k=i;k<=j;k++)
        cout<<a[k]<<" ";
}

void secventa(int n, int a[])
{//determina secventa de lungime maxima ceruta
    int lmax=0,p,k=1;//lungimea maxima, pozitia de final a secventei, lungimea curenta
    for(int i=1;i<n;i++)
        if(prefix(a[i],a[i+1]))//daca a[i] e prefix al lui a[i+1]
        {
            k++;//maresc lungimea secventei curente
            if(k>lmax) //daca e mai lunga decat cea maxima
                {lmax=k; p=i+1;} //actualizez lungimea maxima si pozitia finala
        }
        else k=1;//altfel reinitializez secventa curenta
    if(lmax>1)//daca exista secventa cu lungime cel putin 2
           afisare(a,p-lmax+1,p);//afisez secventa
    else cout<<"Secventa este vida";//nu exista secventa
}

int main()
{
    int n, a[100];
    citire(n,a);
    secventa(n,a);
    return 0;
}


  Clasa a IX-a
1. Elementele de bază ale limbajului C++ (instructiunile limbajului) (46)
2. Subprograme predefinite (1)
3. Tablouri (145)
4. Fişiere text (2)
5. Algoritmi elementari (106)
6. Probleme diverse (13)
  Clasa a X-a
1. Subprograme definite de utilizator (87)
2. Şiruri de caractere (47)
3. Înregistrări (26)
4. Recursivitate (57)
5. Combinatorica (0)
6. Alocarea dinamică a memoriei (2)
7. Liste înlănţuite (25)
8. Algoritmul lui Lee (1)
  Clasa a XI-a

1. Metoda "Divide et impera" (12)
2. Metoda Backtracking (85)
3. Metoda Greedy (6)
4. Programare dinamică (18)
5. Grafuri neorientate (37)
6. Grafuri orientate (38)
7. Arbori (33)

  Clasa a XII-a
1. Elemente de baza C# (32)
2. POO in C# (13)
3. C# - Windows Form Application (24)
4. Admitere UBB (18)

Calculatoare si accesorii second hand
Copyright 2009-2017 Muresan Vasile Ciprian - mcip.ro