|
Titlul: Problema Matrice elemente distincte Scris de: Razvan Atodiresei din Octombrie 24, 2013, 15:04:29 Acesta este enuntul :
Sa se determine multimea formata din elementele distincte de pe marginea unui tablou bidimensional patratic. Ex: Pentru n=3 si matricea: 2 4 3 3 4 6 1 4 3 ----- se va afisa: 1 2 3 4 6 Aceasta este rezolvarea mea : Citat #include <iostream> #include <fstream> using namespace std; fstream f("intrare.in",ios::in); fstream g("iesire.out",ios::out); int main() { int a[10][10],b[10],c[10],i,j,n,k,g1,l; f>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) f>>a[j]; k=0; for(i=0;i<n;i++) { c[k++]=a[0]; c[k++]=a[n-1]; } for(i=1;i<n-1;i++) { c[k++]=a
} l=0; b[l++]=c[0]; for(i=1;i<k;i++) { g1=0; for(j=0;j<l && g1==0;j++) if(c==b[j]) g1=1; if(g1==0) b[l++]=c; } for(i=0;i<l;i++) g<<b<<" "; } As dori sa stiu daca exista o solutie mai optima. O rezolvare mai rapida , am stat ceva si m-am gandit , dar asta e singurul mod care mi-a trecut prin minte. Mersi. Titlul: Răspuns: Problema Matrice elemente distincte Scris de: George Marcus din Octombrie 24, 2013, 15:42:58 Totul depinde de intervalul de valori pe care pot sa le ia elementele matricei. In cazul in care elementele pot fi super mari (pe la 10^9) atunci rezolvarea ta e aproape optima (poti sa tii elementele unice intr-o structura de date). In cazul in care elementele sunt mici, poti construi un vector de frecvente.
|