You are on page 1of 2

Iasi 2019

S2
3. int compute(int a)
{
int nrcif=0,aux=a,ok=1,inv=0;

while (aux)
{

inv=inv*10+aux%10;

if(aux%10==0)
{ok=0;break;}
nrcif++;
aux/=10;
}
if(nrcif<4 || !ok)
return -1;
int poz=1,n=0,m=0;
while(inv)
{
if(poz%2)
n=n*10+inv%10;
else m=m*10+inv%10;
inv/=10;
poz++;
}
cout<<n<<' '<<m;
if(n%10==1 || (n%10==3 && m%4==0) ||(n%10==7 && m%4==0) ||
(n%10==9 && m%2==0))
return 1;
return 0;

S3
3.
b)
int n=7,col[101]={3,4,3,2,2,2,0},V[101],c=5,E[101][100];
int maxColor(int n,int c,int E[][100],int col[])
{
int rep=0,fr[101]={0},viz[101]={0},maxi=0;

for(int i=0;i<n;++i)
if(!viz[i])
{
int nr=1;
for(int j=0;j<n;++j)
fr[j]=0;

fr[col[i]]=1;

int q[101];
int st=1,dr=1;
q[st]=i;
viz[i]=1;
while(st<=dr)
{
for(int j=0;j<n;++j)
if(E[q[st]][j] && !viz[j]) {
viz[j] = 1; q[++dr] = j;
if(fr[col[j]]==0)
fr[col[j]]=1,nr++;
}

st++;
}
if(nr>maxi)
maxi=nr,rep=i;
for(int j=0;j<n;++j)
fr[i]=0;
}
return rep;
}
int main()
{
E[0][2]=E[2][0]=E[0][4]=E[4][0]=E[5][0]=E[0][5]=E[1]
[3]=E[3][1]=E[2][4]=E[4][2]=E[2][5]=E[5][2]=E[3][6]=E[6][3]=1;
cout<<maxColor(n,c,E,col);
}

You might also like