Pagini recente » Cod sursa (job #2656906) | Cod sursa (job #1816371) | Cod sursa (job #2032698) | Cod sursa (job #1450050) | Cod sursa (job #308274)
Cod sursa(job #308274)
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
int main()
{int n,r,i,j,a[100][100],l[1000],x,y,z,viz[1000],k,nr,np[1000];
char s[100],*p,t1,t2;
ifstream fin("DEZB.IN");
fin>>n>>r;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
for(i=1;i<=n;i++)
np[i]=0;
for(i=1;i<=r;i++)
{fin.get();
fin.get(s,100);
x=atoi(s);
p=s;
while((*p<='9')&&(*p>='0'))
p++;
t1=*p;
p=p+1;
strcpy(s,p);
y=atoi(s);
p=s;
while((*p<='9')&&(*p>='0'))
p++;
t2=*p;
p=p+1;
strcpy(s,p);
z=atoi(s);
if(t1==',')
if(t2=='<')
{a[z][x]=1;
a[z][y]=1;
np[x]++;
np[y]++;}
else
{a[x][z]=1;
a[y][z]=1;
np[z]+=2;}
else
if (t1=='<')
{a[y][x]=1;
a[z][x]=1;
np[x]+=2;}
else
{a[x][y]=1;
a[x][z]=1;
np[y]++;
np[z]++;}
}
for(i=1;i<=n;i++)
viz[i]=0;
k=0;
nr=0;
fin.close();
while(nr<n)
{
for(i=n;i>=1;i--)
if((np[i]==0)&&(viz[i]==0))
{k=k+1;
l[k]=i;
viz[i]=1;
for(j=1;j<=n;j++)
if((a[i][j]==1)&&(j!=i))
{a[i][j]=0;
np[j]--;
}
break;
}
nr++;
}
ofstream fout("dezbateri.out");
if(k<n)
fout<<0;
else
for(i=k;i>=1;i--)
fout<<l[i];
fout.close();
return 0;
}