Submission #1225575

#TimeUsernameProblemLanguageResultExecution timeMemory
1225575LeonidCukVision Program (IOI19_vision)C++20
59 / 100
23 ms4036 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
int n,m,timer,timer1;
vector<int>rd,ld,rd1,ld1;
int vrni(int k)
{
    vector<int>res1,res;
    for(int i=0;i<rd.size();i++)
    {
        vector<int>temp,temp1;
        if(i+k==rd.size())break;
        for(int j=i;j<=i+k;j++)
        {
            temp.push_back(rd[j]);
            temp1.push_back(rd1[j]);
        }
        int a=add_xor(temp),b=add_or(temp);
        vector<int>d={a,b};
        a=add_or(temp1);
        b=add_xor(d);
        vector<int>d1={a,b};
        int p=add_or(d1);
        res.push_back(p);
    }
    for(int i=0;i<ld.size();i++)
    {
        vector<int>temp,temp1;
        if(i+k==ld.size())break;
        for(int j=i;j<=i+k;j++)
        {
            temp.push_back(ld[j]);
            temp1.push_back(ld1[j]);
        }
        int a=add_xor(temp),b=add_or(temp);
        vector<int>d={a,b};
        a=add_or(temp1);
        b=add_xor(d);
        vector<int>d1={a,b};
        int p=add_or(d1);
        res1.push_back(p);
    }
    int a=add_or(res1),b=add_or(res);
    vector<int>temp={a,b};
    return add_and(temp);
}
void construct_network(int H, int W, int K)
{
    n=H;m=W;timer1=n*m-1;
    for(int i=n-1;i>=0;i--)
    {
        int i1=i,j=0;
        vector<int>temp;
        while(i1<n&&j<m)
        {
            temp.push_back(i1*m+j);
            i1++;
            j++;
        }
        int a=add_or(temp),b=add_xor(temp);
        rd.push_back(a);
        vector<int>t1={a,b};
        int c=add_xor(t1);
        rd1.push_back(c);
    }
    for(int i=1;i<m;i++)
    {
        int i1=0,j=i;
        vector<int>temp;
        while(i1<n&&j<m)
        {
            temp.push_back(i1*m+j);
            i1++;
            j++;
        }
        int a=add_or(temp),b=add_xor(temp);
        rd.push_back(a);
        vector<int>t1={a,b};
        int c=add_xor(t1);
        rd1.push_back(c);
    }
    for(int i=0;i<m;i++)
    {
        int i1=0,j1=i;
        vector<int>temp;
        while(i1<n&&j1>=0)
        {
            temp.push_back(i1*m+j1);
            i1++;j1--;
        }
        int a=add_or(temp),b=add_xor(temp);
        ld.push_back(a);
        vector<int>t1={a,b};
        int c=add_xor(t1);
        ld1.push_back(c);
    }
    for(int i=1;i<n;i++)
    {
        int j1=m-1,i1=i;
        vector<int>temp;
        while(i1<n&&j1>=0)
        {
            temp.push_back(i1*m+j1);
            i1++;j1--;
        }
        int a=add_or(temp),b=add_xor(temp);
        ld.push_back(a);
        vector<int>t1={a,b};
        int c=add_xor(t1);
        ld1.push_back(c);
    }
    int a=vrni(K),b=vrni(K-1);
    vector<int>d={a,b};
    add_xor(d);
}
#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...