Submission #880787

#TimeUsernameProblemLanguageResultExecution timeMemory
880787abcvuitunggioHamburg Steak (JOI20_hamburg)C++17
6 / 100
76 ms5972 KiB
#include <bits/stdc++.h> using namespace std; const int INF=1e9; int n,k,l[200001],d[200001],r[200001],u[200001]; vector <pair <int, int>> res; vector <int> v; bool check(int l, int r, int x){ return (x>=l&&x<=r); } bool solve(vector <int> v, int k){ if (v.empty()){ while (k--) res.push_back({1,1}); return true; } if (!k) return false; vector <int> a,b; int sz=max(k,2); int mn[sz],mx[sz],mn2[sz],mx2[sz]; for (int i=0;i<sz;i++){ mn[i]=mn2[i]=INF; mx[i]=mx2[i]=0; } for (int i:v){ mx[sz-1]=l[i]; mn[sz-1]=r[i]; mx2[sz-1]=d[i]; mn2[sz-1]=u[i]; for (int i=sz-2;i>=0;i--){ if (mx[i]<mx[i+1]) swap(mx[i],mx[i+1]); if (mn[i]>mn[i+1]) swap(mn[i],mn[i+1]); if (mx2[i]<mx2[i+1]) swap(mx2[i],mx2[i+1]); if (mn2[i]>mn2[i+1]) swap(mn2[i],mn2[i+1]); } } for (int i=0;i<sz-1;i++){ a.push_back(mn[i]); b.push_back(mn2[i]); } for (int i=0;i<sz-1;i++){ if (mx[i]>a.back()) a.push_back(mx[i]); if (mx2[i]>b.back()) b.push_back(mx2[i]); } if (a.size()==1&&b.size()==1){ while (k--) res.push_back({a[0],b[0]}); return true; } if (k==1) return false; vector <pair <int, int>> c; for (int i:a) for (int j:b) c.push_back({i,j}); for (int i=0;i<c.size();i++) for (int j=i+1;j<c.size();j++){ vector <int> v2; for (int k:v){ if ((!check(l[k],r[k],c[i].first)||!check(d[k],u[k],c[i].second))&&(!check(l[k],r[k],c[j].first)||!check(d[k],u[k],c[j].second))) v2.push_back(k); } if (solve(v2,k-2)){ res.push_back(c[i]); res.push_back(c[j]); return true; } } return false; } int main(){ ios_base::sync_with_stdio(NULL);cin.tie(nullptr); cin >> n >> k; for (int i=0;i<n;i++){ cin >> l[i] >> d[i] >> r[i] >> u[i]; v.push_back(i); } bool tmp=solve(v,k); for (auto [x,y]:res) cout << x << ' ' << y << '\n'; }

Compilation message (stderr)

hamburg.cpp: In function 'bool solve(std::vector<int>, int)':
hamburg.cpp:62:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for (int i=0;i<c.size();i++)
      |                  ~^~~~~~~~~
hamburg.cpp:63:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |         for (int j=i+1;j<c.size();j++){
      |                        ~^~~~~~~~~
hamburg.cpp: In function 'int main()':
hamburg.cpp:84:10: warning: unused variable 'tmp' [-Wunused-variable]
   84 |     bool tmp=solve(v,k);
      |          ^~~
#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...