QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#56793 | #3873. Towers | Wilson_Lee | 0 | 998ms | 111088kb | C++ | 2.8kb | 2022-10-21 16:18:45 | 2022-10-21 16:18:46 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pa;
const int MAXN=1e6+5;
struct node
{
int x,y;
}p[MAXN];
vector<pa>X[MAXN],Y[MAXN];
int numx[MAXN],numy[MAXN],ans[MAXN];
int main()
{
//freopen("tower.in","r",stdin);
//freopen("tower.out","w",stdout);
int n;
cin>>n;
for(int i=1;i<=n;++i) scanf("%d %d",&p[i].x,&p[i].y),numx[i]=p[i].x,numy[i]=p[i].y;
sort(numx+1,numx+n+1),sort(numy+1,numy+n+1);
int lenx=unique(numx+1,numx+n+1)-numx-1,leny=unique(numy+1,numy+n+1)-numy-1;
for(int i=1;i<=n;++i)
{
p[i].x=lower_bound(numx+1,numx+lenx+1,p[i].x)-numx;
p[i].y=lower_bound(numy+1,numy+leny+1,p[i].y)-numy;
printf("%d %d\n",p[i].x,p[i].y);
}
for(int i=1;i<=n;++i) X[p[i].x].push_back({p[i].y,i});
for(int i=1;i<=lenx;++i)
{
sort(X[i].begin(),X[i].end());
int si=X[i].size();
Y[X[i][0].first].push_back({i,X[i][0].second});
if(si>=2) Y[X[i][si-1].first].push_back({i,X[i][si-1].second});
}
for(int i=1;i<=leny;++i)
{
//cout<<i<<endl;
if(Y[i].size()<=2)
{
for(auto j:Y[i]) ans[j.second]=1;
continue;
}
//cout<<i<<endl;
sort(Y[i].begin(),Y[i].end());
int si=Y[i].size();
ans[Y[i][0].second]=ans[Y[i][si-1].second]=1;
vector<pa>tmp;
tmp.push_back(Y[i][0]),tmp.push_back(Y[i][si-1]);
for(int j=1;j<si-1;++j)
{
ans[Y[i][j].second]=0;
pa now={i,Y[i][j].second};
int pos=upper_bound(X[Y[i][j].first].begin(),X[Y[i][j].first].end(),now)-X[Y[i][j].first].begin();
if(pos<X[Y[i][j].first].size()-1) Y[X[Y[i][j].first][pos].first].push_back({Y[i][j].first,X[Y[i][j].first][pos].second});
else tmp.push_back(Y[i][j]);
}
Y[i]=tmp;
}
//for(int i=1;i<=n;++i) if(ans[i]) putchar(i+'A'-1);
//return 0;
for(int i=leny;i>=1;--i)
{
//cout<<Y[i].size()<<endl;
if(Y[i].size()<=2)
{
for(auto j:Y[i]) ans[j.second]=1;
continue;
}
sort(Y[i].begin(),Y[i].end());
int si=Y[i].size();
ans[Y[i][0].second]=ans[Y[i][si-1].second]=1;
for(int j=1;j<si-1;++j)
{
ans[Y[i][j].second]=0;
pa now={i,Y[i][j].second};
int pos=lower_bound(X[Y[i][j].first].begin(),X[Y[i][j].first].end(),now)-X[Y[i][j].first].begin()-1;
if(pos>0) Y[X[Y[i][j].first][pos].first].push_back({Y[i][j].first,X[Y[i][j].first][pos].second});
}
}
for(int i=1;i<=n;++i) printf("%d",ans[i]);
return 0;
}
/*
8
1 3
2 3
4 4
4 3
4 1
2 4
4 2
3 3
1011111101101100
1011110101101100
*/
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 8ms
memory: 50628kb
input:
2 869400 218695 664808 31410
output:
2 2 1 1 11
result:
wrong answer
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #26:
score: 0
Wrong Answer
time: 51ms
memory: 53912kb
input:
92690 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 6...
output:
1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60 1 61 1 62...
result:
wrong answer
Subtask #4:
score: 0
Wrong Answer
Test #38:
score: 0
Wrong Answer
time: 897ms
memory: 106480kb
input:
1000000 1 18543 4 40327 7 19084 8 44274 10 42366 12 22173 13 9862 15 44706 19 48070 21 13389 24 39273 26 18680 27 46858 28 46126 32 27753 34 28289 36 12220 38 39235 42 28505 45 47348 46 34220 48 47551 50 49156 54 8856 55 25515 56 21932 58 24482 59 20686 61 41381 66 30112 67 44504 70 24510 71 26418 7...
output:
1 13544 4 35328 5 14085 6 39275 8 37367 10 17174 11 4863 13 39707 16 43071 18 8390 19 34274 20 13681 21 41859 22 41127 24 22754 26 23290 28 7221 30 34236 32 23506 34 42349 35 29221 37 42552 38 44157 40 3857 41 20516 42 16933 44 19483 45 15687 46 36382 48 25113 49 39505 51 19511 52 21419 53 44781 55 ...
result:
wrong answer
Subtask #5:
score: 0
Skipped
Dependency #2:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 0
Wrong Answer
Test #85:
score: 0
Wrong Answer
time: 998ms
memory: 111088kb
input:
1000000 1 602300 1 778881 2 397065 3 291452 3 678039 5 235300 6 499367 8 8597 10 327718 10 516489 12 416542 12 440048 13 284169 13 383581 13 642202 13 770858 14 378154 14 710033 15 905531 16 50155 17 142259 19 395613 19 500321 20 358934 21 461772 24 562953 24 995887 25 421244 27 900412 29 301006 31 ...
output:
1 380476 1 491464 2 250849 3 184042 3 428129 4 148661 5 315529 6 5453 7 206915 7 326298 8 263179 8 277940 9 179467 9 242324 9 405658 9 486462 10 238884 10 448166 11 571304 12 31603 13 89762 14 249930 14 316157 15 226752 16 291666 17 355572 17 628486 18 266134 19 568082 20 190076 21 95142 21 409907 2...
result:
wrong answer