Cod sursa(job #2409175)

Utilizator Vaida_Radu_AndreiVaida Radu Andrei Vaida_Radu_Andrei Data 18 aprilie 2019 19:02:41
Problema Lista lui Andrei Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[100][100], n, m;
void citire()
{
    ifstream fin("mat.in");
    fin>>n>>m;
    for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
            fin>>a[i][j];
}

int eliminare_cifra(int x, int poz)
{
    int p=1, y=0;
    for(int i=0; i<poz; i++)
    {
        y=y+p*(x%10);
        p=p*10;
        x=x/10;
    }
    x=x/10;
    y=y+p*x;
    return y;
}

int palindrom(int x)
{
    int inv=0, aux = x;
    while(x)
    {
        int c=x%10;
        x=x/10;
        inv=inv*10+c;
    }
    if(inv==aux)
        return 1;
    return 0;
}

int elim_palindrom(int x)
{
    int aux=x, poz=0;
    if (x < 10)
        return 0;
    while(x)
    {
        if(palindrom(eliminare_cifra(aux, poz)));
            return 1;
        poz++;
        x=x/10;
    }
    return 0;
}

void stergere()
{
    int sterse=0;
    for(int i=0; i<n; i++)
        if(elim_palindrom(a[i][0])==1)
            sterse++;
        else
            for(int j=0; j<n; j++)
                a[i-sterse][j]=a[i][j];
    n=n-sterse;
}

void afisare()
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            cout<<a[i][j]<<' ';
        cout<<endl;
    }
}

int main()
{
    citire();
    stergere();
    afisare();
    return 0;
}