Submission #4272331
Source Code Expand
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> P; #define N 2000010 #define mod 1000000007 ll nxt[N],n; P d[N]; vector<ll> g[N]; void make_edge(ll a,ll b){ //cout<<"edge:"<<a<<" "<<b<<endl; g[a].push_back(b); g[b].push_back(a); } ll vis[N]; bool dfs(ll x,ll col){ if(~vis[x]){ return vis[x]==col; } vis[x]=col; for(auto y:g[x]){ if(dfs(y,1^col)==0)return 0; } return 1; } bool solve(){ stack<ll> s[2]; vector<P> v; for(int i=0;i<n;i++){ v.push_back(make_pair(d[i].first,i*2+0)); v.push_back(make_pair(d[i].second,i*2+1)); }sort(v.begin(),v.end()); for(int i=0;i<2*n;i++){ ll id=v[i].second/2,type=v[i].second%2; ll col=vis[d[id].second]; if(type==0)s[col].push(id); if(type==1){ if(s[col].top()!=id)return 0; s[col].pop(); } } return 1; } int main(){ cin>>n; for(int i=0;i<n;i++)scanf("%lld%lld",&d[i].first,&d[i].second); sort(d,d+n); for(int i=1;i<=2*n;i++)nxt[i]=1e15; priority_queue<ll,vector<ll>,greater<ll> > Q; set<ll> S; S.insert(-1); S.insert(1e15); vector<bool> used(2*N,0); for(int i=0;i<n;i++){ ll a=d[i].first,b=d[i].second; S.insert(b); while(!Q.empty()){ ll x=Q.top(); if(x>a)break; Q.pop(); if(used[x])continue; used[x]=1; if(nxt[x]<1e15)Q.push(nxt[x]); } vector<ll> united; united.clear(); while(!Q.empty()){ ll x=Q.top(); if(x>b)break; Q.pop(); united.push_back(x); } ll siz=united.size(); if(siz==0){ Q.push(b); continue; } Q.push(united[0]); auto ir=S.lower_bound(b); ir--; nxt[b]=nxt[*ir]; united.push_back(b); for(int j=1;j<=siz;j++){ auto it=S.lower_bound(united[j]); it--; if(*it!=-1)nxt[*it]=united[j]; } for(int j=0;j<siz;j++){ make_edge(united[j],b); } } for(int i=0;i<n;i++){ vis[d[i].first]=0; vis[d[i].second]=-1; } ll ans=1; for(int i=1;i<=2*n;i++){ if(~vis[i])continue; (ans*=2)%=mod; ans*=dfs(i,0); } cout<<ans*solve()<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - 港湾設備 (Port Facility) |
User | ynymxiaolongbao |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2211 Byte |
Status | AC |
Exec Time | 2448 ms |
Memory | 241636 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:46:65: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] for(int i=0;i<n;i++)scanf("%lld%lld",&d[i].first,&d[i].second); ^
Judge Result
Set Name | Subtask01 | Subtask02 | Subtask03 | Subtask04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 10 / 10 | 12 / 12 | 56 / 56 | 22 / 22 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Subtask01 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt |
Subtask02 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt |
Subtask03 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 03-20.txt, 03-21.txt, 03-22.txt, 03-23.txt, 03-24.txt, 03-25.txt, 03-26.txt, 03-27.txt, 03-28.txt, 03-29.txt, 03-30.txt, 03-31.txt, 03-32.txt, 03-33.txt, 03-34.txt, 03-35.txt |
Subtask04 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 03-14.txt, 03-15.txt, 03-16.txt, 03-17.txt, 03-18.txt, 03-19.txt, 03-20.txt, 03-21.txt, 03-22.txt, 03-23.txt, 03-24.txt, 03-25.txt, 03-26.txt, 03-27.txt, 03-28.txt, 03-29.txt, 03-30.txt, 03-31.txt, 03-32.txt, 03-33.txt, 03-34.txt, 03-35.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, 04-13.txt, 04-14.txt, 04-15.txt, 04-16.txt, 04-17.txt, 04-18.txt, 04-19.txt, 04-20.txt, 04-21.txt, 04-22.txt, 04-23.txt, 04-24.txt, 04-25.txt, 04-26.txt, 04-27.txt, 04-28.txt, 04-29.txt, 04-30.txt, 04-31.txt, 04-32.txt, 04-33.txt, 04-34.txt, 04-35.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 18 ms | 51968 KB |
01-02.txt | AC | 18 ms | 51968 KB |
01-03.txt | AC | 18 ms | 51968 KB |
01-04.txt | AC | 18 ms | 51968 KB |
01-05.txt | AC | 18 ms | 51968 KB |
01-06.txt | AC | 18 ms | 51968 KB |
01-07.txt | AC | 18 ms | 51968 KB |
01-08.txt | AC | 19 ms | 51968 KB |
01-09.txt | AC | 18 ms | 51968 KB |
01-10.txt | AC | 18 ms | 51968 KB |
01-11.txt | AC | 18 ms | 51968 KB |
01-12.txt | AC | 18 ms | 51968 KB |
01-13.txt | AC | 18 ms | 51968 KB |
01-14.txt | AC | 18 ms | 51968 KB |
01-15.txt | AC | 18 ms | 51968 KB |
01-16.txt | AC | 18 ms | 51968 KB |
01-17.txt | AC | 18 ms | 51968 KB |
01-18.txt | AC | 18 ms | 51968 KB |
01-19.txt | AC | 18 ms | 51968 KB |
01-20.txt | AC | 18 ms | 51968 KB |
01-21.txt | AC | 18 ms | 51968 KB |
01-22.txt | AC | 18 ms | 51968 KB |
01-23.txt | AC | 18 ms | 51968 KB |
01-24.txt | AC | 18 ms | 51968 KB |
02-01.txt | AC | 20 ms | 52224 KB |
02-02.txt | AC | 20 ms | 52224 KB |
02-03.txt | AC | 20 ms | 52224 KB |
02-04.txt | AC | 20 ms | 52224 KB |
02-05.txt | AC | 20 ms | 52224 KB |
02-06.txt | AC | 20 ms | 52224 KB |
02-07.txt | AC | 20 ms | 52224 KB |
02-08.txt | AC | 20 ms | 52224 KB |
02-09.txt | AC | 20 ms | 52224 KB |
02-10.txt | AC | 20 ms | 52224 KB |
02-11.txt | AC | 19 ms | 52224 KB |
02-12.txt | AC | 19 ms | 52224 KB |
02-13.txt | AC | 20 ms | 52224 KB |
02-14.txt | AC | 19 ms | 52224 KB |
02-15.txt | AC | 19 ms | 52224 KB |
02-16.txt | AC | 19 ms | 52224 KB |
02-17.txt | AC | 19 ms | 52224 KB |
02-18.txt | AC | 19 ms | 52224 KB |
02-19.txt | AC | 19 ms | 52352 KB |
02-20.txt | AC | 19 ms | 52352 KB |
03-01.txt | AC | 112 ms | 70900 KB |
03-02.txt | AC | 111 ms | 71412 KB |
03-03.txt | AC | 113 ms | 70900 KB |
03-04.txt | AC | 111 ms | 70772 KB |
03-05.txt | AC | 112 ms | 70772 KB |
03-06.txt | AC | 111 ms | 71668 KB |
03-07.txt | AC | 111 ms | 70900 KB |
03-08.txt | AC | 79 ms | 68204 KB |
03-09.txt | AC | 79 ms | 69104 KB |
03-10.txt | AC | 117 ms | 71920 KB |
03-11.txt | AC | 114 ms | 71152 KB |
03-12.txt | AC | 114 ms | 71152 KB |
03-13.txt | AC | 102 ms | 70900 KB |
03-14.txt | AC | 78 ms | 67312 KB |
03-15.txt | AC | 96 ms | 69232 KB |
03-16.txt | AC | 109 ms | 69360 KB |
03-17.txt | AC | 115 ms | 69488 KB |
03-18.txt | AC | 91 ms | 70128 KB |
03-19.txt | AC | 104 ms | 70000 KB |
03-20.txt | AC | 115 ms | 71028 KB |
03-21.txt | AC | 156 ms | 71280 KB |
03-22.txt | AC | 151 ms | 71028 KB |
03-23.txt | AC | 103 ms | 71788 KB |
03-24.txt | AC | 105 ms | 72172 KB |
03-25.txt | AC | 107 ms | 71916 KB |
03-26.txt | AC | 106 ms | 71916 KB |
03-27.txt | AC | 101 ms | 71020 KB |
03-28.txt | AC | 101 ms | 70892 KB |
03-29.txt | AC | 104 ms | 72940 KB |
03-30.txt | AC | 109 ms | 72428 KB |
03-31.txt | AC | 127 ms | 72948 KB |
03-32.txt | AC | 131 ms | 73588 KB |
03-33.txt | AC | 128 ms | 73972 KB |
03-34.txt | AC | 111 ms | 70644 KB |
03-35.txt | AC | 113 ms | 71156 KB |
04-01.txt | AC | 1093 ms | 212064 KB |
04-02.txt | AC | 1121 ms | 210912 KB |
04-03.txt | AC | 1150 ms | 210144 KB |
04-04.txt | AC | 1107 ms | 211424 KB |
04-05.txt | AC | 1097 ms | 210784 KB |
04-06.txt | AC | 1099 ms | 210144 KB |
04-07.txt | AC | 1104 ms | 211680 KB |
04-08.txt | AC | 850 ms | 178152 KB |
04-09.txt | AC | 864 ms | 192224 KB |
04-10.txt | AC | 1602 ms | 223712 KB |
04-11.txt | AC | 1568 ms | 219872 KB |
04-12.txt | AC | 1542 ms | 219616 KB |
04-13.txt | AC | 1326 ms | 210404 KB |
04-14.txt | AC | 866 ms | 179176 KB |
04-15.txt | AC | 944 ms | 195264 KB |
04-16.txt | AC | 1142 ms | 205408 KB |
04-17.txt | AC | 1122 ms | 209376 KB |
04-18.txt | AC | 946 ms | 195932 KB |
04-19.txt | AC | 1118 ms | 206296 KB |
04-20.txt | AC | 1081 ms | 208732 KB |
04-21.txt | AC | 2432 ms | 218720 KB |
04-22.txt | AC | 2448 ms | 218976 KB |
04-23.txt | AC | 1181 ms | 222368 KB |
04-24.txt | AC | 1225 ms | 223264 KB |
04-25.txt | AC | 1226 ms | 223156 KB |
04-26.txt | AC | 1165 ms | 223156 KB |
04-27.txt | AC | 1170 ms | 227104 KB |
04-28.txt | AC | 1185 ms | 227232 KB |
04-29.txt | AC | 1194 ms | 226996 KB |
04-30.txt | AC | 1174 ms | 227984 KB |
04-31.txt | AC | 1797 ms | 241636 KB |
04-32.txt | AC | 1772 ms | 240484 KB |
04-33.txt | AC | 1860 ms | 240996 KB |
04-34.txt | AC | 1148 ms | 210404 KB |
04-35.txt | AC | 1102 ms | 211040 KB |
sample-01.txt | AC | 18 ms | 51968 KB |
sample-02.txt | AC | 18 ms | 51968 KB |
sample-03.txt | AC | 18 ms | 51968 KB |
sample-04.txt | AC | 18 ms | 51968 KB |