Submission #153069

#TimeUsernameProblemLanguageResultExecution timeMemory
153069oolimryVision Program (IOI19_vision)C++14
20 / 100
28 ms2808 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K) {

    map<int, vector<int> > a; ///down left (/)
    map<int, vector<int> > b; ///down right (\)

    for(int r = 0;r < H;r++){
        for(int c = 0;c < W;c++){
            a[r+c].push_back(r * W + c);
            b[c-r].push_back(r * W + c);
        }
    }

    int s = a.size();
    int cnt = H*W;
    for(map<int, vector<int> >::iterator it  = a.begin();it != a.end();it++){
        //cout << it->first << ": ";
        for(int x : it->second){
            //cout << x << " ";
        }
        //cout << "\n";
        add_or(it->second);
        cnt++;
    }

    for(map<int, vector<int> >::iterator it  = b.begin();it != b.end();it++){
        //cout << it->first << ": ";
        for(int x : it->second){
           // cout << x << " ";
        }
        //cout << "\n";
        add_or(it->second);
        cnt++;
    }
    for(int i = 0;i < s;i++){
        add_or({H*W+i,H*W+s+i});
        cnt++;
    }
    for(int i = 0;i < s;i++){
        add_not(H*W+2*s+i);
        cnt++;
    }
    for(int i = 0;i < s;i++){
        vector<int> Ns;
        Ns.push_back(H*W+2*s+i);
        for(int j = 0;j < i;j++){
            Ns.push_back(H*W+3*s+j);
        }
        add_and(Ns);
        cnt++;
    }
    int pnt1 = cnt;
    int k = K;
    for(int i = 0;i < s-k;i++){
        add_and({H*W+4*s+i, H*W+i, H*W+i+k});
        add_and({H*W+4*s+i, H*W+s+i, H*W+i+s+k});
        cnt += 2;
    }
    vector<int> Ns;
    for(int i = pnt1 ;i < cnt;i++){

        Ns.push_back(i);
    }
    add_or(Ns);
    //cout << cnt - pnt1 << "\n";


}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:20:17: warning: unused variable 'x' [-Wunused-variable]
         for(int x : it->second){
                 ^
vision.cpp:30:17: warning: unused variable 'x' [-Wunused-variable]
         for(int x : it->second){
                 ^
#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...