Cod sursa(job #292741)

Utilizator mihaiiDraghici Mihail mihaii Data 31 martie 2009 13:45:46
Problema Vanatoare Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<iostream.h>
#include<fstream.h>
#include<stdio.h>
int main()
{FILE *f,*g;
f=fopen("vanatoare.in","r");
g=fopen("vanatoare.out","w");
int bbb[1000000],max,bb[30][1000000],nr,n,i,a[20],b[20],p,k,y,j,ok;
long aa[1000000],s,ss[30],t,q;
fscanf(f,"%d %ld",&n,&t);
for (i=1;i<=n;i++) fscanf(f,"%ld %ld",&a[i],&b[i]);
nr=0;        for (i=1;i<=t;i++) bb[i][0]=0;                                    nr=0;
for (i=1;i<=n;i++) {j=0;
		    while ((j*b[i]+a[i])<t) {q=j*b[i]+a[i];
					     j++;   ok=1;
					     for (y=1;y<=nr;y++) if (aa[y]==q) {ok=0;bbb[y]++;bb[y][bbb[y]]=i;break;}
					     if (ok==1) {nr++;bbb[nr]=1;aa[nr]=q;bb[nr][1]=i;}  }

		    }
ok=0;       s=0;
while (ok==0)
{ok=1;      max=bbb[1];
for (i=1;i<=nr;i++) if (bbb[i]>max) {max=bbb[i];p=i;}
for (i=1;i<=nr;i++) if (i!=p) for (j=1;j<=bbb[i];j++) for (k=1;k<=bbb[p];k++) if (bb[p][k]==bb[i][j]) {bb[i][j]=bb[i][bbb[i]];bbb[i]--;j--;}
bbb[p]=0;
s++;ss[s]=aa[p];
for (i=1;i<=nr;i++) if (bbb[i]!=0) ok=0;
}
fprintf(g,"%ld\n",s);
for (i=1;i<=s;i++) fprintf(g,"%ld ",ss[i]);
fclose(f);
fclose(g);
}