Informatică, întrebare adresată de gabrielanegrea2, 9 ani în urmă

Mă poate ajuta cineva cu ultima problema din subiectul 3 de la simulare ? Sunt la mate-info, în clasa a 9-a şi nu mă prea descurc, iar această problemă este tema mea pe mâine. Acesta este link-ul http://mediartv1.freenode.ro/other/201703/e_d_informatica_c_sp_mi_2017_var_simulare_lro_43777300.pdf. Vă mulţumesc anticipat !!

Răspunsuri la întrebare

Răspuns de KindaBored
3
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bac.in");
int v[1001],x[1001],i,j,m,n,ok;
int main()
{
    fin>>m>>n;
    for (i=1;i<=m;i++)
        fin>>v[i];
    for (i=1;i<=n;i++)
        fin>>x[i];
    i=m;
    j=n;
    while (i && j)
    {
        if (v[i]==x[j] && v[i]%2==0)
        {
            ok=1;
            cout<<v[i]<<" ";
            i--; j--;
        }
        else
        {
            if (v[i]>x[j])
            {
                if (v[i]%2==0)
                {
                    ok=1;
                    cout<<v[i]<<" ";
                }
                i--;
            }
            else
            {
                if (x[j]%2==0)
                {
                    ok=1;
                    cout<<x[j]<<" ";
                }
                j--;
            }
        }
    }
    if (i && !j)
    {
        while (i)
        {
            if (v[i]%2==0)
            {
                ok=1;
                cout<<v[i]<<" ";
            }
            i--;
        }
    }
    else
    {
         while (j)
        {
            if (x[j]%2==0)
            {
                ok=1;
                cout<<x[j]<<" ";
            }
            i--;
        }
    }

return 0;
}


gabrielanegrea2: Mulțumesc mult !!
gabrielanegrea2: Mi-ai putea explica modul in care ai gandit problema, te rog ?
KindaBored: Dupa ce le citesti si le memorezi in vectori(fiecare sir intr-un vector), incepi de pe ultima pozitie a fiecarui vector si compari elementele(pentru a le putea afisa in ordinea corecta). Dupa ce s-a terminat unul din vectori, ramane de verificat daca celalalt vector mai are elemente pare.
gabrielanegrea2: multumesc !!
Răspuns de artur99
2
#include <iostream>
#include <fstream>
using namespace std;

int v1[1001], v2[1001];
int main(){
    ifstream in("bac.in");
    int k1=0, k2=0, m, n, t, i;
    in>>m>>n;
    for(i=0; i<m; i++){
        in>>t;
        if(t%2 == 0){
            v1[k1] = t;
            k1++;
        }
    }
    for(i=0; i<n; i++){
        in>>t;
        if(t%2 == 0){
            v2[k2] = t;
            k2++;
        }
    }
    if(k1 + k2 == 0){
        cout<<"nu exista";
        return 0;
    }
    k1--;
    k2--;
    while(k1 >= 0 && k2 >= 0){
        if(v1[k1] > v2[k2]){
            cout<<v1[k1]<<' ';
              k1--;
        }else if(v2[k2] > v1[k1]){
            cout<<v2[k2]<<' ';
              k2--;
        }else{
            cout<<v1[k1]<<' ';
            k1--;
            k2--;
        }
    }
    for(i=k1;i>=0;i--)
        cout<<v1[i]<<' ';
    for(i=k2;i>=0;i--)
        cout<<v2[i]<<' ';
    in.close();
    return 0;
}

Mie așa mi s-a părut mai simplu. :))

gabrielanegrea2: Mulțumesc frumos !!
Alte întrebări interesante