제출 #502509

#제출 시각아이디문제언어결과실행 시간메모리
502509KhizriVision Program (IOI19_vision)C++17
0 / 100
2 ms1096 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
const int mxn=1e5;
int say,color[mxn];
int dis(int r1,int c1,int r2,int c2){
    return abs(r1-r2)+abs(c1-c2);
}
void check(int x,int y,int n,int m,int k){
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(dis(x,y,i,j)==k&&color[x*m+y]&&color[i*m+j]){
                add_and({x*m+y,i*m+j});
            }
        }
    }
}
void task(int n,int m,int k){
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(dis(0,0,i,j)==k){
                add_and({0,i*m+j});
                say++;
            }
        }
    }
    vector<int>res;
    for(int i=n*m;i<=say;i++){
        res.push_back(i);
    }
    add_or(res);
}
void construct_network(int n, int m, int k) {
    say=n*m-1;
    vector<pair<int,int>>vt;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            int x=add_not(i*m+j);
            x=1-x;
            color[i*m+j]=x;
            if(color[i*m+j]==1){
                vt.push_back({i,j});
            }
        }
    }
	if(dis(vt[0].F,vt[0].S,vt[1].F,vt[1].S)==k){
        add_and({vt[0].F*m+vt[0].S,vt[1].F*m+vt[1].S});
	}
	else{
        add_not(vt[0].F*m+vt[0].S);
	}
}
#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...