Submission #291814

#TimeUsernameProblemLanguageResultExecution timeMemory
291814medmdgVision Program (IOI19_vision)C++14
46 / 100
10 ms1272 KiB
#include<bits/stdc++.h>
#include "vision.h"
using namespace std;
void construct_network(int H, int W, int K){
    vector<int> hori;
    vector<int> vert;
    int bh=H*W;
    int eh;
    for(int i=0;i<H;i++){
        vector<int> al;
        for(int j=0;j<W;j++){
            al.push_back(j+i*W);
        }
        eh=add_or(al);
        hori.push_back(eh);
    }
    int bv=eh+1;
    int ev;
    for(int i=0;i<W;i++){
        vector<int> al;
        for(int j=i;j<H*W;j+=W){
            al.push_back(j);
        }
        ev=add_or(al);
        vert.push_back(ev);
    }
    vector<int> dishori;
    vector<int> disvert;
    int end=ev;
    vector<int> OH;
    for(int i=bh;i<=eh;i++){
        OH.push_back(i);
    }
    dishori.push_back(add_xor(OH));
    vector<int> OV;
    for(int i=bv;i<=ev;i++){
        OV.push_back(i);
    }
    disvert.push_back(add_xor(OV));
    end+=2;
    for(int i=1;i<=min(H-1,K);i++){
        vector<int> h;
        for(int j=bh;j<=eh-i;j++){
            vector<int> hp;
            hp.push_back(j);
            hp.push_back(j+i);
            end=add_and(hp);
            h.push_back(end);
        }
        if(h.size()){
            dishori.push_back(add_or(h));
            end++;
        }
    }
    for(int i=1;i<=min(W-1,K);i++){
        vector<int> h;
        for(int j=bv;j<=ev-i;j++){
            vector<int> hp;
            hp.push_back(j);
            hp.push_back(j+i);
            end=add_and(hp);
            h.push_back(end);
        }
        if(h.size()){
            disvert.push_back(add_or(h));
            end++;
        }
    }
    int last;
    for(int i=0;i<=K;i++){
        if(disvert.size()>i&&dishori.size()>K-i){
            vector<int> f;
            f.push_back(disvert[i]);
            f.push_back(dishori[K-i]);
            last=(add_and(f));
        }
    }
    vector<int> nb;
    for(int i=end+1;i<=last;i++){
        nb.push_back(i);
    }
    last=add_or(nb);
    return;
}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:71:26: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   71 |         if(disvert.size()>i&&dishori.size()>K-i){
      |            ~~~~~~~~~~~~~~^~
vision.cpp:71:44: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   71 |         if(disvert.size()>i&&dishori.size()>K-i){
      |                              ~~~~~~~~~~~~~~^~~~
vision.cpp:79:22: warning: 'last' may be used uninitialized in this function [-Wmaybe-uninitialized]
   79 |     for(int i=end+1;i<=last;i++){
      |                     ~^~~~~~
#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...