Submission #1302357

#TimeUsernameProblemLanguageResultExecution timeMemory
1302357khoavn2008Towers (NOI22_towers)C++17
16 / 100
192 ms64024 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld double #define FOR(i,l,r) for(int i = (l), _r = (r); i <= _r; i++) #define FORNG(i,r,l) for(int i = (r), _l= (l); i >= _l; i--) #define REP(i,n) for(int i = 0, _n = (n); i < _n; i++) #define endl '\n' #define fi first #define se second #define size(v) ((int)(v).size()) #define pb push_back #define all(v) (v).begin(),(v).end() #define MASK(x) (1LL << (x)) #define BIT(x, i) (((x) >> (i)) & 1) const ll MOD = 1e9 + 7, N = 1e6 + 10, LOG = 19; const int INF = 1e9 + 36; int n; pair<int,int> P[N]; namespace sub12{ void solve(){ REP(mask,MASK(n)){ if(!mask)continue; bool ok = 1; REP(i,n){ if(!BIT(mask,i)){ int l = INF, r = -INF; int u = INF, v = -INF; REP(j,n)if(BIT(mask, j)){ if(P[j].se == P[i].se)l = min(l, P[j].fi),r = max(r, P[j].fi); if(P[j].fi == P[i].fi)u = min(u, P[j].se),v = max(v, P[j].se); } if(!((l <= P[i].fi && P[i].fi <= r) || (u <= P[i].se && P[i].se <= v))){ ok = 0; break; } }else{ int cnt = 0; REP(j,n)if(BIT(mask, j) && P[j].fi == P[i].fi)cnt++; if(cnt > 2){ ok = 0; break; } cnt = 0; REP(j,n)if(BIT(mask, j) && P[j].se == P[i].se)cnt++; if(cnt > 2){ ok = 0; break; } } } if(ok){ REP(t,n)cout<<BIT(mask, t); return; } } } } vector<int> row[N],col[N]; bool mark[N], markCol[N]; int main(){ // freopen("SLAMP.INP", "r", stdin); // freopen("SLAMP.OUT", "w", stdout); ios_base::sync_with_stdio(0);cin.tie(0); cin>>n; REP(i,n)cin>>P[i].fi>>P[i].se; if(n <= 16){ sub12::solve(); return 0; } REP(i,n)col[P[i].se].pb(i); FOR(i,1,(int)1e6)if(size(col[i])){ sort(all(col[i])); mark[col[i][0]] = 1; mark[col[i].back()] = 1; markCol[P[col[i].back()].se] = 1; } REP(i,n){ if(!markCol[P[i].se])mark[i] = 1; cout<<mark[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...