Submission #66778679
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
int M = 2*N;
vector<int> A(N+1), B(N+1);
for(int i=1;i<=N;i++){
cin >> A[i] >> B[i];
}
struct Seg { int l, r, id; };
vector<Seg> segs;
segs.reserve(3*N);
for(int i=1;i<=N;i++){
int a=A[i], b=B[i];
if(a < b){
segs.push_back({a, b, i});
} else {
segs.push_back({a, b+M, i});
}
}
int K = segs.size();
for(int i=0;i<K;i++){
auto &S = segs[i];
if(S.r <= M){
segs.push_back({S.l+M, S.r+M, S.id});
}
}
sort(segs.begin(), segs.end(),
[&](auto &x, auto &y){
if(x.l!=y.l) return x.l<y.l;
return x.r<y.r;
});
vector<int> parent(N+1, 0),
bestR(N+1, INT_MAX);
set<pair<int,int>> active;
for(auto &S: segs){
while(!active.empty() && active.begin()->first < S.l)
active.erase(active.begin());
auto it = active.lower_bound({S.r, -1});
if(it != active.end()){
int pid = it->second;
if(it->first < bestR[S.id]){
bestR[S.id] = it->first;
parent[S.id] = pid;
}
}
active.insert({S.r, S.id});
}
vector<vector<int>> adj(N+1);
for(int i=1;i<=N;i++){
adj[i].push_back(parent[i]);
adj[parent[i]].push_back(i);
}
vector<int> depth(N+1, -1);
queue<int>q;
depth[0] = 0;
q.push(0);
int maxDepth = 0;
while(!q.empty()){
int u = q.front(); q.pop();
for(int v: adj[u]){
if(depth[v]==-1){
depth[v] = depth[u]+1;
maxDepth = max(maxDepth, depth[v]);
q.push(v);
}
}
}
int far = 0;
for(int i=0;i<=N;i++){
if(depth[i] > depth[far]) far = i;
}
vector<int> dist(N+1, -1);
dist[far]=0;
q.push(far);
int diam = 0;
while(!q.empty()){
int u = q.front(); q.pop();
for(int v: adj[u]){
if(dist[v]==-1){
dist[v] = dist[u]+1;
diam = max(diam, dist[v]);
q.push(v);
}
}
}
cout << max(maxDepth, diam) << "\n";
return 0;
}
Submission Info
| Submission Time |
|
| Task |
G - Longest Chord Chain |
| User |
Kifff12 |
| Language |
C++ 20 (gcc 12.2) |
| Score |
0 |
| Code Size |
2491 Byte |
| Status |
WA |
| Exec Time |
197 ms |
| Memory |
32904 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
0 / 575 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| random_01.txt |
WA |
197 ms |
22580 KiB |
| random_02.txt |
WA |
181 ms |
21528 KiB |
| random_03.txt |
WA |
197 ms |
22608 KiB |
| random_04.txt |
WA |
27 ms |
6648 KiB |
| random_05.txt |
WA |
193 ms |
22632 KiB |
| random_06.txt |
WA |
77 ms |
11676 KiB |
| random_07.txt |
WA |
193 ms |
22596 KiB |
| random_08.txt |
WA |
108 ms |
14900 KiB |
| random_09.txt |
WA |
193 ms |
22748 KiB |
| random_10.txt |
WA |
61 ms |
10208 KiB |
| random_11.txt |
WA |
193 ms |
22596 KiB |
| random_12.txt |
WA |
174 ms |
21020 KiB |
| random_13.txt |
WA |
193 ms |
22652 KiB |
| random_14.txt |
WA |
122 ms |
16332 KiB |
| random_15.txt |
WA |
193 ms |
22724 KiB |
| random_16.txt |
WA |
157 ms |
19328 KiB |
| random_17.txt |
WA |
192 ms |
22664 KiB |
| random_18.txt |
WA |
35 ms |
7576 KiB |
| random_19.txt |
WA |
193 ms |
22584 KiB |
| random_20.txt |
WA |
183 ms |
21788 KiB |
| random_21.txt |
AC |
1 ms |
3436 KiB |
| random_22.txt |
AC |
73 ms |
25060 KiB |
| random_23.txt |
AC |
73 ms |
25036 KiB |
| random_24.txt |
AC |
141 ms |
31308 KiB |
| random_25.txt |
WA |
117 ms |
24684 KiB |
| random_26.txt |
AC |
187 ms |
32904 KiB |
| random_27.txt |
WA |
173 ms |
24388 KiB |
| sample_01.txt |
AC |
1 ms |
3492 KiB |
| sample_02.txt |
AC |
1 ms |
3516 KiB |
| sample_03.txt |
AC |
1 ms |
3644 KiB |