Submission #296516

#TimeUsernameProblemLanguageResultExecution timeMemory
296516humbertoyustaVision Program (IOI19_vision)C++14
52 / 100
5 ms1568 KiB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
#define db(x) cerr << #x << ": " << (x) << '\n';
#define f first
#define s second
#define pb push_back
#define ii pair<int,int>

vector<int> v[40040];

void construct_network(int H, int W, int K) {

    if( max(W,H) <= 30 || min(W,H) == 1 ){

        for(int i=0; i<H; i++)
            for(int j=0; j<W; j++)
                for(int k=0; k<H; k++)
                    for(int l=0; l<W; l++)
                        if( abs(l - j) + abs(k - i) == K )
                            if( k >= i ) v[i*W+j].pb(k*W+l);

        vector<int> vx;
        int cnt = W*H-1;
        for(int i=0; i<W*H; i++){
            if( v[i].size() ){
                add_or(v[i]);
                ++cnt;
                vector<int> n;
                n.pb(i);
                n.pb(cnt);
                add_and(n);
                ++cnt;
                vx.pb(cnt);
            }
        }

        add_or(vx);

    }
    else{

        vector<ii> v;
        for(int i=0; i<1; i++)
            for(int j=0; j<1; j++)
                for(int k=0; k<H; k++)
                    for(int l=0; l<W; l++)
                        if( abs(l - j) + abs(k - i) == K )
                            v.pb({i*W+j,k*W+l});

        for( auto i : v ){
            vector<int> N;
            N.pb(i.f);
            N.pb(i.s);
            add_and(N);
        }

        vector<int> vx;
        for(int i=W*H; i<W*H+v.size(); i++)
            vx.pb(i);
        add_or(vx);

    }
}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:59:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |         for(int i=W*H; i<W*H+v.size(); 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...