Pagini recente » Cod sursa (job #605604) | Cod sursa (job #110022) | Cod sursa (job #290222) | Cod sursa (job #38947) | Cod sursa (job #18479)
Cod sursa(job #18479)
#include<fstream.h>
long n2,m,k,n;
struct plant
{long val;
int l,c;
};
plant (*v)=new plant[250001];
void poz(long li,long ls,long &k)
{unsigned long i=li,j=ls,i1=0,j1=-1,a1;
plant aux;
while(i<j)
{if(v[i].val<v[j].val)
{aux=v[i];v[i]=v[j];v[j]=aux;
a1=i1;i1=-j1;j1=-a1;
}
i=i+i1;j=j+j1;
}
k=i;
}
void quick(long li,long ls)
{if(li<ls)
{poz(li,ls,k);
quick(li,k-1);
quick(k+1,ls);
}
}
int main()
{ifstream f("plantatie.in");
ofstream g("plantatie.out");
long i,j,lin,col,lat,l2,c2;
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) {n2++;f>>v[n2].val;v[n2].l=i;v[n2].c=j;}
quick(1,n2);
for(i=1;i<=m;i++)
{f>>lin>>col>>lat;
l2=lin+lat-1;c2=col+lat-1;
for(j=1;j<=n2;j++)
if((v[j].l>=lin)&&(v[j].l<=l2)&&(v[j].c>=col)&&(v[j].c<=c2))
{g<<v[j].val<<'\n';break;}
}
f.close();
g.close();
return 0;
}