Submission #144908

#TimeUsernameProblemLanguageResultExecution timeMemory
144908cfalasVision Program (IOI19_vision)C++14
44 / 100
283 ms26132 KiB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> ii;
#define mp(a,b) ii(min(a, b), max(a, b))

void construct_network(int H, int W, int K) {
	std::vector<int> Ns;
	map<ii, bool> used;
	for(int x1=0;x1<W;x1++){
		for(int y1=0;y1<H;y1++){
			//cout<<endl<<x1+W*y1<<": \n";
			int origx=K+x1, origy=y1;
			vector<int> possiblexy;
			for(int i=0;i<K;i++){
				//cout<<origx+origy*W<<" ";
				if(origx<W && origx>=0 && origy<H && origy>=0){
					if(!used[mp(origx+origy*W, y1*W+x1)]){
						used[mp(origx+origy*W, y1*W+x1)] = true;
						possiblexy.push_back(origx+origy*W);
					}
				}
				origy++;
				origx--;
			}
			for(int i=0;i<K;i++){
				//cout<<origx+origy*W<<" ";
				if(origx<W && origx>=0 && origy<H && origy>=0){
					if(!used[mp(origx+origy*W, y1*W+x1)]){
						used[mp(origx+origy*W, y1*W+x1)] = true;
						possiblexy.push_back(origx+origy*W);
					}
				}
				origy--;
				origx--;
			}
			for(int i=0;i<K;i++){
				//cout<<origx+origy*W<<" ";
				if(origx<W && origx>=0 && origy<H && origy>=0){
					if(!used[mp(origx+origy*W, y1*W+x1)]){
						used[mp(origx+origy*W, y1*W+x1)] = true;
						possiblexy.push_back(origx+origy*W);
					}
				}
				origy--;
				origx++;
			}
			for(int i=0;i<K;i++){
				//cout<<origx+origy*W<<" ";
				if(origx<W && origx>=0 && origy<H && origy>=0){
					if(!used[mp(origx+origy*W, y1*W+x1)]){
						used[mp(origx+origy*W, y1*W+x1)] = true;
						possiblexy.push_back(origx+origy*W);
					}
				}
				origy++;
				origx++;
			}
			int a;
			if(possiblexy.size()>1)
			a = add_or(possiblexy);
			else if(possiblexy.size()==1) a = possiblexy[0];
			else continue;
			vector<int> v;
			v.push_back(y1*W + x1);
			v.push_back(a);
			Ns.push_back(add_and(v));
		}
	}
	int a = add_or(Ns);
}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:70:6: warning: unused variable 'a' [-Wunused-variable]
  int a = add_or(Ns);
      ^
#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...