Submission #90634

#TimeUsernameProblemLanguageResultExecution timeMemory
90634314rateTreasure (different grader from official contest) (CEOI13_treasure2)C++14
38 / 100
2 ms580 KiB
#include "treasure.h"
#include <bits/stdc++.h>

using namespace std;

const int N=100+5;

int n;

int v[N][N];

void slove(int r1,int c1,int r2,int c2)
{
    int dr=r2-r1+1;
    int dc=c2-c1+1;
    if(dr<=0 || dc<=0)
    {
        return;
    }
    int x=countTreasure(r1,c1,r2,c2);
    if(x==0) return;
    if(x==dr*dc)
    {
        for(int r=r1;r<=r2;r++)
        {
            for(int c=c1;c<=c2;c++)
            {
                v[r][c]=1;
            }
        }
        return;
    }
    int rn=(r1+r2)>>1;
    int cn=(c1+c2)>>1;
    slove(r1,c1,rn,cn);
    slove(r1,cn+1,rn,c2);
    slove(rn+1,c1,r2,cn);
    slove(rn+1,cn+1,r2,c2);
}

void findTreasure (int N)
{
    int n=N;
    slove(1,1,n,n);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(v[i][j])
            {
                Report(i,j);
            }
        }

    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...