Problema 1

a) Enunt:
text
b) Rezolvare:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
  ifstream f("regat1.in");
  ofstream g("regat.out");
  int i,j,k,n,v[100001],maxpal,inv,pr[100001],ok1,ok2;
  int cifra,copie,primul=0;
  f>>n;
  for(i=1;i<=n;i++)
   f>>v[i];
   f.close();
   k=0;
   maxpal=-1;//nu exista!!
  for(i=1;i<=n;i++)
  {
    copie=v[i];
    inv=0;
    while(copie!=0)
    {
       cifra=copie%10;
       inv=inv*10+cifra;
       copie=copie/10;
    }
    cout<<endl<<v[i]<<"=?="<<inv<<endl;
    if(v[i]==inv)//este!!
     {
      if(!primul)
      {
        maxpal=v[i]; primul++;
      }
      else if (maxpal<v[i]) maxpal=v[i];
      ok1=0; ok2=0;
      //pentru stanga
      if(i>1)
      {
         copie=v[i-1];
         for(j=2;j<=copie/2;j++)
            if(copie%j==0) ok1=1;
      }else ok1++;
      //pentru dreapta
  if(i<n)
      {
        copie=v[i+1];
        for(j=2;j<=copie/2;j++)
            if(copie%j==0) ok2=1;
      }else ok2++;  
 if(ok1==0 || ok2==0)
      {
        k++;
        pr[k]=v[i];
        cout<<k<<" "<<pr[k]<<endl;
      }
     }//palindrom
  }//for
     if(maxpal>0) g<<maxpal<<endl;
     else {g<<"Nu exista!!"<<endl; g<<"Nu exista!!";}
     if(!k && maxpal>0) g<<"Nu exista!!";
     else
       for(j=1;j<=k;j++)
         g<<pr[j]<<" ";
     g.close();
     return 0;
  }



Problema 2

a) Enunt:
text

b) Rezolvare: