Pagini recente » Cod sursa (job #2444056) | Cod sursa (job #1983528) | Cod sursa (job #1486075) | Cod sursa (job #2673329) | Cod sursa (job #60596)
Cod sursa(job #60596)
#include<stdio.h>
long a[1000],b[100],x[100],n,p,kred,m,baza[100],z[100];
void citire()
{
int i;
FILE*f=fopen("nextseq.in","r");
fscanf(f,"%ld %ld %ld",&n,&m,&p);
for(i=1;i<=n;++i) fscanf(f,"%ld",&x[i]);
for(i=1;i<=m;++i) fscanf(f,"%ld",&a[i]);
for(i=1;i<=p;++i) fscanf(f,"%ld",&b[i]);
}
void sort()
{
int ok,i,aux;
do
{
ok=1;
for(i=1;i<n;++i)
if (x[i]>x[i+1]) {aux=x[i];x[i]=x[i+1]; x[i+1]=aux; ok=0;}
}
while(ok==0);
}
void trans_baza()
{
int i;
for(i=1;i<=n;i++) baza[x[i]]=i-1;
}
void form_nr()
{
int i;
for(i=1;i<=m;i++) a[i]=baza[a[i]]; //transfomam sirul a in baza n;
for(i=1;i<=p;++i) b[i]=baza[b[i]]; //transf situl b in baza m;
}
void invers()
{
int i,aux;
for(i=1;i<=m/2;++i) { aux=a[i]; a[i]=a[m-i+1]; a[m-i+1]=aux;}
for(i=1;i<=p/2;++i) {aux=b[i]; b[i]=b[p-i+1]; b[p-i+1]=aux;}
}
void ready()
{
int i;
if(p>m)
{
for(i=m;i>=1;--i)
a[p+m-i]=a[i];
for(i=1;i<=p-m;++i) a[i]=0;
}
}
void diferenta()
{
int i,t=0;
for(i=p;i>=1;i--)
{
if (b[i]-a[i]-t>=0)
{
z[i]=b[i]-a[i]-t;
t=0;
}
else
{
z[i]=b[i]-a[i]-t+10;
t=1;
}
}
while(z[p]==0&&p>=1) p--;
int r=1;
while(kred<=p&&z[kred]==0) kred++;
}
void afis()
{
FILE*g=fopen("nextseq.out","w");
int i;
if (kred>p) fprintf(g,"0");
else
for(i=p;i>=kred;--i) fprintf(g,"%ld",z[i]);
fclose(g);
}
int main()
{
citire();
sort();
trans_baza();
form_nr();
invers();
// ready();
diferenta();
afis();
return 0;}