Pagini recente » Cod sursa (job #102215) | Cod sursa (job #18486)
Cod sursa(job #18486)
#include <fstream.h>
#define dim 250001
//#include <time.h>
struct plantatie
{long val,l,c;
};
plantatie v[dim];
long k,n,m;
void poz(long li,long ls)
{long i=li,j=ls,cont,i1=0,j1=-1;
plantatie aux;
while(i<j)
{if(v[i].val<v[j].val)
{aux=v[i];v[i]=v[j];v[j]=aux;
cont=i1;
i1=-j1;
j1=-cont;
}
i+=i1;
j+=j1;
}
k=i;
}
void quick(long li,long ls)
{if(li<ls)
{poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
}
}
int main()
{ifstream f("plantatie.in");
ofstream g("plantatie.out");
//clock_t start,end;
//start=clock();
f>>n>>m;
long i,j,cont=0,lin,col,lat,lin1,col1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cont++;
f>>v[cont].val;
v[cont].l=i;
v[cont].c=j;
}
quick(1,cont);
//cout<<cont<<'\n';
for(i=1;i<=m;i++)
{f>>lin>>col>>lat;
lin1=lin+lat-1;
col1=col+lat-1;
for(j=1;j<=cont;j++)
if(((v[j].l>=lin)&&(v[j].l<=lin1))&&((v[j].c>=col)&&(v[j].c<=col1)))
{g<<v[j].val<<'\n';break;}
}
f.close();
g.close();
//end=clock();
//cout<<((end-start)*1000)/CLK_TCK<<'\n';
return 0;
}