Submission #599294

#TimeUsernameProblemLanguageResultExecution timeMemory
599294FatihSolakVision Program (IOI19_vision)C++17
58 / 100
8 ms1232 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; int h,w,k; int get_pos(int x,int y){ return x*w + y; } void construct_network(int H, int W, int K) { h = H; w = W; k = K; map<int,int> row,col; int cnt = h*w; add_not(0); cnt++; add_or({0,cnt-1}); int pos_1 = cnt++; for(int i = 0;i<h;i++){ vector<int> v; for(int j = 0;j<w;j++){ v.push_back(get_pos(i,j)); } add_or(v); row[i] = cnt++; } for(int i = 0;i<w;i++){ vector<int> v; for(int j = 0;j<h;j++){ v.push_back(get_pos(j,i)); } add_or(v); col[i] = cnt++; } map<int,int> row_dif,col_dif; for(int i = h-1;i>0;i--){ if(k-i < 0 || k - i >= w)continue; vector<int> candidates; set<int> s; for(int j = 0;j<h;j++){ if(j + i < h){ s.insert(j); } } while(s.size()){ vector<int> ask1; int num = *s.begin(); ask1.push_back(row[num]); ask1.push_back(row[num + i]); s.erase(num); add_and(ask1); candidates.push_back(cnt++); } add_or(candidates); int now = cnt++; row_dif[i] = now; } vector<int> tmp; for(int i = 0;i<h;i++){ tmp.push_back(row[i]); } add_xor(tmp); row_dif[0] = cnt++; for(int i = w-1;i>0;i--){ if(k-i < 0 || k - i >= h)continue; vector<int> candidates; set<int> s; for(int j = 0;j<w;j++){ if(j + i < w){ s.insert(j); } } while(s.size()){ vector<int> ask1; int num = *s.begin(); ask1.push_back(col[num]); ask1.push_back(col[num + i]); s.erase(num); add_and(ask1); candidates.push_back(cnt++); } add_or(candidates); int now = cnt++; col_dif[i] = now; } tmp.clear(); for(int i = 0;i<w;i++){ tmp.push_back(col[i]); } add_xor(tmp); col_dif[0] = cnt++; vector<int> candidates; for(int i = 0;i<=min(h-1,k);i++){ if(0 <= k-i && k-i < w){ add_and({row_dif[i],col_dif[k-i]}); candidates.push_back(cnt++); } } add_or(candidates); int answer = cnt++; }

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:17:9: warning: unused variable 'pos_1' [-Wunused-variable]
   17 |     int pos_1 = cnt++;
      |         ^~~~~
vision.cpp:101:9: warning: unused variable 'answer' [-Wunused-variable]
  101 |     int answer = cnt++;
      |         ^~~~~~
#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...