Submission #145269

#TimeUsernameProblemLanguageResultExecution timeMemory
145269Bodo171Vision Program (IOI19_vision)C++14
52 / 100
4 ms632 KiB
#include "vision.h"
#include <vector>
#include <iostream>
using namespace std;
int n,m,i,j,k,wh,lim1,lim2;
vector<int> v,fin;
int enc(int A,int B)
{
    return (m*A+B);
}
void construct_network(int H, int W, int K) {
    n=H,m=W;wh=n*m-1;
    if(H>30||W>30) lim1=1,lim2=1;
    else lim1=n,lim2=m;
    if(min(H,W)==1) lim1=n,lim2=m;
    fin.clear();
    for(i=0;i<lim1;i++)
        for(j=0;j<lim2;j++)
    {
        v.clear();
        for(k=0;k<=K;k++)
        {
            if(i+k<H&&j+K-k<W)
            {
                v.push_back(enc(i+k,j+K-k));
            }
            if(k>=1&&i-k>=0&&j+K-k<W)
            {
                v.push_back(enc(i-k,j+K-k));
            }
        }
        if(v.size())
        {
            if(v.size()>1)
            {
                add_or(v);
                wh++;
                v.clear();v.push_back(enc(i,j));v.push_back(wh);
            }
            else
            {
                v.push_back(enc(i,j));
            }
            wh++;
            add_and(v);
            fin.push_back(wh);
        }
    }
    add_or(fin);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...