Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Curtea Penala Internationala soli...

Sunt obligate bancile sa opteze p...

Pensie anticipata partiala cu cer...

Subscriptii
 Cat ar costa acest poster, se poa...

Cum sa scapam de sobolani?

Alser Forest SA a dat teapa de 1,...

COD Eroare ABS ( Ford Mondeo MK5 )
 Implanturi dentare clinici Consta...

Viata cu butelie versus retea de ...

Nelamurire succesiune

Roka Residence Doamna Ghica
 Concediu medical pe zile din urma

Receiver satelit care sa faca aut...

Recuperare sim/eSIM digi.

charger "laptop de muzeu"...
 

Problema cu niste subprograme

- - - - -
  • Please log in to reply
2 replies to this topic

#1
fbm95

fbm95

    Member

  • Grup: Members
  • Posts: 357
  • Înscris: 03.10.2008
Salut.Am o problema  : graf neorientat conex cu n noduri, trebuie sa afisez un lant hamiltonian pentru care sirul gradelor varfurilor(nodurilor) NU este un sir monoton.
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("graf.in");
int n,a[100][100],l,x[100],v[100];
void citire()
{f>>n;int x,y;
while(!f.eof())
{f>>x>>y;
a[x][y]=1;
a[y][x]=1;}}

int grad(int p)
{int nr=0;
for(int i=1;i<=n;i++)
if(a[i][p]==1)
nr++;
return nr;}

int sc()
{int ok=0;
for(int i=1;i<n;i++)
if(x[i]>x[i+1])
ok=1;
return ok;}

int sd()
{int ok=0;
for(int i=1;i<n;i++)
if(x[i]<x[i+1])
ok=1;
return ok;}

int cont(int k)
{for(int i=1;i<k;i++)
for(int j=i+1;j<=k;j++)
if(x[i]==x[j])
return 0;
for(int i=1;i<k;i++)
if(a[x[i]][x[i+1]]==0)
return 0;
return 1;}

int sol(int k)
{if(k==n)
return 1;
return 0;}

void bkt()
{int k=1;x[k]=0;
while(k)
if(x[k]<n)
{x[k]++;
if(cont(k))
if(sol(k))
if(sd()==1&&sc()==1)
	 {for(int i=1;i<=n;i++)
	 v[i]=x[i];
	 l++;}
else
{k++;x[k]=0;}}
else
k--;}

int main()
{citire();
bkt();
if(l!=0)
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
else
cout<<"imposibil";
return 0;}

Astea ar fi niste date de intrare la care trebuie sa afiseze 4 2 1 3. Daca scriu sa imi afiseze toate sirurile , mi le afiseaza corect.
4
1 2
1 3
2 4
4 1

Problema e ca atunci cand apelez sc si sd ele nu sunt accesate. Am inserat dupa if(sol(k)) cout<<1; si executa comanta asta, dar nu stiu de ce se blocheaza la apelul celor doua subprograme.Dati-mi o idee cu ce am gresit. Multumesc.

#2
fbm95

fbm95

    Member

  • Grup: Members
  • Posts: 357
  • Înscris: 03.10.2008
Adineaori am vazut ca aici nu trebuie postate intrebari legate de temele. Imi cer scuze , puteti sterge topicul.

Edited by fbm95, 20 January 2013 - 18:54.


#3
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,948
  • Înscris: 03.08.2008
e ok sa postezi codul tau si sa ceri ajutor, nu e ok sa ceri sa ti se rezolve problemele.

in alta ordine de idei, am rulat codul tau si am observat ca functia sol nu returneaza niciodata true pe exemplul dat, deci nici nu ajunge la restul functiilor la care spui tu ca se blocheaza. Nu am avut timp sa fac un debug mai detaliat. Sper sa te ajute informatia asta.

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate