Submission #594710

#TimeUsernameProblemLanguageResultExecution timeMemory
594710DeepessonVision Program (IOI19_vision)C++17
0 / 100
6 ms4436 KiB
#include <bits/stdc++.h> void construct_network(int H, int W, int K); int add_and(std::vector<int> Ns); int add_or(std::vector<int> Ns); int add_xor(std::vector<int> Ns); int add_not(int N); int tiles[505][505]; void plotar_tiles(int H,int W){ for(int i=0;i!=H;++i){ for(int j=0;j!=W;++j){ tiles[i][j]=(i*W)+j; } } } ///Ideia: Caso o AND desses 2 caras sejam positivos a conexao eh invalida std::vector<int> gerar_lista_dist(int H,int W,int a,int b,int K){ std::vector<int> queue; queue.push_back(tiles[a][b]); for(int i=0;i!=H;++i){ for(int j=0;j!=W;++j){ int d = abs(i-a)+abs(j-b); if(d!=K)queue.push_back(tiles[i][j]); } } return queue; } void construct_network(int H, int W, int K) { plotar_tiles(H,W); ///Min(H,W) == 1 if(std::min(H,W)==1){ if(H==1){ int count=0; for(int i=0;i!=W;++i){ int esperado = i+K; if(esperado>=W)break; std::vector<int> v; v.push_back(tiles[0][i]); v.push_back(tiles[0][esperado]); add_and(v); ++count; } std::vector<int> orzao; for(int i=0;i!=count;++i)orzao.push_back(H*W+i); add_or(orzao); }else { assert(W==1); int count=0; for(int i=0;i!=H;++i){ int esperado = i+K; if(esperado>=H)break; std::vector<int> v; v.push_back(tiles[i][0]); v.push_back(tiles[esperado][0]); add_and(v); ++count; } std::vector<int> orzao; for(int i=0;i!=count;++i)orzao.push_back(H*W+i); add_or(orzao); } }else if(H*W<=10000-5){ int count=0; for(int i=0;i!=H;++i){ for(int j=0;j!=W;++j){ if(i==H-1&&j==W-1)continue; std::vector<int> res = gerar_lista_dist(H,W,i,j,K); add_and(res); ++count; } } std::vector<int> orzao; for(int i=0;i!=count;++i)orzao.push_back(H*W+i); add_or(orzao); add_not(H*W+count); }{///Pixel no canto superior esquerdo std::vector<int> lista; for(int i=0;i!=H;++i) for(int j=0;j!=W;++j){ if(i+j==K){ lista.push_back(tiles[i][j]); } } add_or(lista); } }
#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...