| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 291775 | medmdg | Vision Program (IOI19_vision) | C++14 | 19 ms | 2048 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "vision.h"
using namespace std;
vector<int> DT(int H,int W,int i,int K){
    vector<int> ans;
    for(int j=0;j<H*W;j++){
        if(abs(j%W-i%W)+abs(j/W-i/W)==K){
            ans.push_back(j);
        }
    }
    return ans;
}
void construct_network(int H, int W, int K){
    int l;
    for(int i=0;i<H;i++){
        vector<int> ans;
        for(int j=0;j<W;j++){
            ans.push_back(j+i*W);
        }
        l=add_or(ans);
    }
    vector<int> cas;
    vector<int> an;
    for(int j=H*W;j<=l;j++){
        an.push_back(j);
    }
    cas.push_back(add_xor(an));
    int be=l+1;
    int en=l+1;
    for(int i=1;i<=K;i++){
        vector<int> ans;
        vector<int> no;
        for(int j=H*W;j<=l-i;j++){
            ans.push_back(j);
            ans.push_back(j+i);
            en=add_and(ans);
            no.push_back(en);
        }
        if(no.size()){
        cas.push_back(add_or(no));
        en++;
        }
    }
    int ll;
    for(int i=0;i<W;i++){
        vector<int> ans;
        for(int j=i;j<H*W;j+=W){
            ans.push_back(j);
        }
        ll=add_or(ans);
    }
    vector<int> cass;
    vector<int> ann;
    for(int j=en+1;j<=ll;j++){
        an.push_back(j);
    }
    cass.push_back(add_xor(an));
    int enn=ll+1;
    for(int i=1;i<=K;i++){
        vector<int> ans;
        vector<int> no;
        for(int j=en;j<=ll-i;j++){
            ans.push_back(j);
            ans.push_back(j+i);
            enn=add_and(ans);
            no.push_back(en);
        }
        if(no.size()){
        cass.push_back(add_or(no));
        en++;
        }
    }
    vector<int> tr;
    tr.push_back(cas[K]);
    tr.push_back(cass[0]);
    en=add_and(tr);
    for(int i=0;i<=K;i++){
        vector<int> trr;
        if(cass.size()>i&&cas.size()>K-i){
            trr.push_back(cas[i]);
            trr.push_back(cas[K-i]);
            enn=add_and(trr);
        }
    }
    vector<int> lk;
    for(int i=en+1;i<=enn;i++){
        lk.push_back(i);
    }
    en=add_or(lk);
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
