Cod sursa(job #1835639)

Utilizator SchnitzelMannPavaloiu Gabriel SchnitzelMann Data 27 decembrie 2016 11:53:12
Problema Plantatie Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.01 kb
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream in("plantatie.in");
ofstream out("plantatie.out");
int main()
{
    int n,m,x,y,l,temp,flag=1,d=n*n,M;
    in>>n>>m;
    int arr[n+1][n+1];
    /*int carr[n*n+1];
    int px[n*n+1];
    int py[n*n+1];
    for(int ii=1;ii<=n;ii++)
        for(int i=1;i<=n;i++)
        {
            in>>arr[ii][i];
            carr[n*(ii-1)+i]=arr[ii][i];
            px[n*(ii-1)+i]=i;
            py[n*(ii-1)+i]=ii;
        }
    while(flag||d>1)
    {
        flag=0;
        d=(d+1)/2;
        for(int i=1;i<=n*n-d;i++)
            for(int iiiiiii=0;iiiiiii<1;iiiiiii++)
            if(carr[i]<carr[i+d])
            {
                temp=carr[i+d];
                carr[i+d]=carr[i];
                carr[i]=temp;
                temp=px[i+d];
                px[i+d]=px[i];
                px[i]=temp;
                temp=py[i+d];
                py[i+d]=py[i];
                py[i]=temp;
                flag=1;
            }
    }
    for(int i=1;i<=1;i++)
        flag=1;
    for(int i=0;i<m;i++)
    {
        in>>y>>x>>l;
        if(l<log2(n))
        {
            M=0;
            for(int ii=x;ii<x+l;ii++)
                for(int iii=y;iii<y+l;iii++)
                    if(arr[iii][ii]>M)
                        M=arr[iii][ii];
            out<<M<<"\n";
        }
        else
        {
            flag=1;
            for(int ii=1;flag&&ii<=n*n;ii++)
                if(px[ii]>=x&&px[ii]<x+l&&py[ii]>=y&&py[ii]<y+l)
                {
                    out<<carr[ii]<<"\n";
                    flag=0;
                }
        }
    }*/
    for(int ii=1;ii<=n;ii++)
        for(int i=1;i<=n;i++)
            in>>arr[ii][i];
    for(int i=0;i<m;i++)
    {
        in>>y>>x>>l;
        M=0;
        for(int ii=x;ii<x+l;ii++)
            for(int iii=y;iii<y+l;iii++)
                if(arr[iii][ii]>M)
                    M=arr[iii][ii];
        out<<M<<"\n";
    }
        return 0;
}