답안 #587958

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
587958 2022-07-02T15:01:25 Z ogibogi2004 Vision Program (IOI19_vision) C++14
47 / 100
25 ms 2692 KB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;

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

    if(K==1)
    {
        int c1[W],r1[H],c2[W],r2[H];
        for(int i=0;i<H;i++)
        {
            vector<int>v;
            for(int j=0;j<W;j++)v.push_back(i*W+j);
            r1[i]=add_or(v);
        }
        for(int i=0;i<H-1;i++)
        {
            vector<int>v1;
            vector<int>v2;
            for(int j=0;j<W;j++)v1.push_back(i*W+j);
            for(int j=0;j<W;j++)v2.push_back((i+1)*W+j);
            r2[i]=add_and({add_or(v1),add_or(v2)});
        }
        for(int j=0;j<W;j++)
        {
            vector<int>v;
            for(int i=0;i<H;i++)v.push_back(W*i+j);
            c1[j]=add_or(v);
        }
        for(int j=0;j<W-1;j++)
        {
            vector<int>v1,v2;
            for(int i=0;i<H;i++)v1.push_back(W*i+j);
            for(int i=0;i<H;i++)v2.push_back(W*i+j+1);
            c2[j]=add_and({add_or(v1),add_or(v2)});
        }

        int cc1,cc2,rr1,rr2;
        vector<int>v;


        v.clear();
        for(int i=0;i<W;i++)v.push_back(c1[i]);
        cc1=add_xor(v);

        v.clear();
        for(int i=0;i<H;i++)v.push_back(r1[i]);
        rr1=add_xor(v);

        v.clear();
        for(int i=0;i<W-1;i++)v.push_back(c2[i]);
        if(W>1)cc2=add_xor(v);
        else cc2=0;

        v.clear();
        for(int i=0;i<H-1;i++)v.push_back(r2[i]);
        if(H>1)rr2=add_xor(v);
        else rr2=0;

        int case1=add_and({cc1,rr2});
        int case2=add_and({cc2,rr1});
        add_or({case1,case2});
        return;
    }
    vector<pair<pair<int,int>,pair<int,int> > >pairs;
    for(int i=0;i<H;i++)
    {
        for(int j=0;j<W;j++)
        {
            for(int i1=i;i1<H;i1++)
            {
                for(int j1=0;j1<W;j1++)
                {
                    if(i1==i&&j1<j)continue;
                    if(abs(i1-i)+abs(j1-j)==K)
                    {
                        pairs.push_back({{i,j},{i1,j1}});
                    }
                }
            }
        }
    }
    vector<int>ps;
    for(int i=0;i<pairs.size();i++)
    {
        ps.push_back(add_and({pairs[i].first.first*W+pairs[i].first.second,pairs[i].second.first*W+pairs[i].second.second}));
    }
    add_or(ps);
    /*
    vector<int>v;
    for(int i=0;i<H;i++)
    {
        for(int j=0;j<W;j++)
        {
            if(i+j==K)v.push_back(i*W+j);
        }
    }
    add_or(v);
    */
}

Compilation message

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:85:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<std::pair<int, int>, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |     for(int i=0;i<pairs.size();i++)
      |                 ~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 240 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 300 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 296 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 300 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 240 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 300 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 296 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 300 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 296 KB Output is correct
26 Correct 0 ms 304 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 240 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 300 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 296 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 300 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 296 KB Output is correct
26 Correct 0 ms 304 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Incorrect 3 ms 1320 KB WA in grader: Too many instructions
29 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 240 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 300 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 296 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 300 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 296 KB Output is correct
26 Correct 0 ms 304 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Incorrect 3 ms 1320 KB WA in grader: Too many instructions
29 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 296 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 296 KB Output is correct
5 Correct 1 ms 296 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 2 ms 212 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 1 ms 300 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 304 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 340 KB Output is correct
16 Correct 1 ms 304 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 2 ms 468 KB Output is correct
4 Incorrect 9 ms 2376 KB WA in grader: Too many instructions
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 2652 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 3 ms 428 KB Output is correct
4 Correct 5 ms 616 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 14 ms 1492 KB Output is correct
8 Correct 12 ms 1492 KB Output is correct
9 Correct 23 ms 2692 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 240 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 300 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 296 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 300 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 296 KB Output is correct
26 Correct 0 ms 304 KB Output is correct
27 Correct 1 ms 212 KB Output is correct
28 Incorrect 3 ms 1320 KB WA in grader: Too many instructions
29 Halted 0 ms 0 KB -