제출 #682737

#제출 시각아이디문제언어결과실행 시간메모리
682737APROHACKVision Program (IOI19_vision)C++14
0 / 100
11 ms1140 KiB
#include "vision.h" #include <bits/stdc++.h> #define ll long long #define ff first #define ss second #define pb push_back using namespace std; int h, w, k; bool valid(int x, int y){ return (x < h && y < w && x >= 0 && y >= 0); } int coordenadasAPosicion (int x, int y){ return x*w + y; } void construct_network(int H, int W, int K) { h = H, w = W, k = K; int cuenta = 0; vector<int>toOr; if(k != 1){ for(int i = 0 ; i < H ; i ++){ for(int j = 0 ; j < W ; j ++){ if(i>0 || j>0)continue; if(valid(i, j)){ vector<int>toXor; //cout << "Esto fue para " << i << " " << j << endl; for(int abajo = k ; abajo > -k ; abajo--){ if(valid(i+abajo, j+k-abs(abajo))){ //cout << "valid = " << i+abajo << ", " << j+k-abs(abajo)<<endl; toXor.pb(coordenadasAPosicion(i+abajo, j+k-abs(abajo))); //add_and({coordenadasAPosicion(i, j), coordenadasAPosicion(i+abajo, j+k-abs(abajo))}); //cuenta ++; } } if(toXor.empty())continue; toXor.pb(coordenadasAPosicion(i, j)); add_xor(toXor); add_not({H*W+cuenta}); //cout << "analising " << H*W+cuenta << endl; cuenta+=2; add_and({H*W+cuenta-1, coordenadasAPosicion(i, j)}); //cout << "and to position" << H*W+cuenta-1 << endl; cuenta++; toOr.pb({H*W+cuenta-1}); } } } add_or(toOr); return ; } //firstXOR vector<int>resultadosXORES[2]; for(int j = 0 ; j < W; j ++){ vector<int>toXOR; for(int i = 0 ; i < H ; i ++){ toXOR.pb(coordenadasAPosicion(i, j)); } add_xor(toXOR); resultadosXORES[0].pb(H*W+cuenta); cuenta ++; } for(int i = 0 ; i < H ; i ++){ vector<int>toXOR; for(int j = 0 ; j < W ; j ++){ toXOR.pb(coordenadasAPosicion(i, j)); } add_xor(toXOR); resultadosXORES[1].pb(H*W+cuenta); cuenta++; } vector<int>resultadosANDS[2]; for(int i = 0 ; i+1 < resultadosXORES[0].size() ; i++){ add_and({resultadosXORES[0][i], resultadosXORES[0][i+1]}); resultadosANDS[0].pb(H*W+cuenta); cuenta ++; } for(int i = 0 ; i+1 < resultadosXORES[1].size() ; i++){ add_and({resultadosXORES[1][i], resultadosXORES[1][i+1]}); resultadosANDS[1].pb(H*W+cuenta); cuenta ++; } vector<int>resultadosORS; vector<int>toAdd; for(int i = 0 ; i < resultadosANDS[0].size() ; i++){ toAdd.pb(resultadosANDS[0][i]); } add_or(toAdd); resultadosORS.pb(H*W+cuenta); cuenta ++; toAdd.clear(); for(int i = 0 ; i < resultadosANDS[1].size() ; i++){ toAdd.pb(resultadosANDS[1][i]); } add_or(toAdd); resultadosORS.pb(H*W+cuenta); cuenta ++; vector<int>finalXOR[2]; for(int i = 0 ; i < resultadosXORES[0].size() ; i++){ finalXOR[0].pb(resultadosXORES[0][i]); } for(int i = 0 ; i < resultadosXORES[1].size() ; i++){ finalXOR[1].pb(resultadosXORES[1][i]); } int ResultadoFinalXOR[2]; add_xor(finalXOR[0]); ResultadoFinalXOR[0] = H*W+cuenta; cuenta ++; add_xor(finalXOR[1]); ResultadoFinalXOR[1] = H*W+cuenta; cuenta ++; add_and({resultadosORS[0], ResultadoFinalXOR[1]}); int respuesta[2]; respuesta[0] = H*W+cuenta; cuenta ++; add_and({resultadosORS[1], ResultadoFinalXOR[0]}); respuesta[1] = H*W+cuenta; cuenta ++; add_or({respuesta[0], respuesta[1]}); }

컴파일 시 표준 에러 (stderr) 메시지

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:86:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   86 |  for(int i = 0 ; i+1 < resultadosXORES[0].size() ; i++){
      |                  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
vision.cpp:91:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |  for(int i = 0 ; i+1 < resultadosXORES[1].size() ; i++){
      |                  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
vision.cpp:98:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   98 |  for(int i = 0 ; i < resultadosANDS[0].size() ; i++){
      |                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
vision.cpp:106:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  106 |  for(int i = 0 ; i < resultadosANDS[1].size() ; i++){
      |                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
vision.cpp:113:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  113 |  for(int i = 0 ; i < resultadosXORES[0].size() ; i++){
      |                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
vision.cpp:116:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  116 |  for(int i = 0 ; i < resultadosXORES[1].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...