// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
#define int int64_t
const int k = 2000000000;
vector<array<int , 3>> e;
vector<vector<array<int , 2>>> g;
vector<int> ans;
vector<int> a , q;
int u = 0;
int l = 0;
int n;
void dfs(int h){
while(!g[h].empty()){
if(ans[g[h].back()[1]] != -1){
g[h].pop_back();
continue;
}
int s = g[h].back()[1], d = g[h].back()[0];
ans[s] = 2;
dfs(g[h].back()[0]);
ans[s] = l;
if(q[d] != q[h])l = !l;
}
}
int32_t main() {
cin >> n;
ans.resize(n*2+3 , -1);
g.resize(n*2+3);
q.resize(n*2+3);
for(int i = 0; i < n;i++){
int y , z; cin >> y >> z;
a.push_back(y);
a.push_back(z+k);
e.push_back({y , z+k , u++});
}
sort(a.begin() , a.end());
a.erase(unique(a.begin(),a.end()),a.end());
for(int i = 0; i < n;i++){
e[i][0] = lower_bound(a.begin() , a.end() , e[i][0])-a.begin();
e[i][1] = lower_bound(a.begin() , a.end() , e[i][1])-a.begin();
q[e[i][0]] = 0;
q[e[i][1]] = 1;
g[e[i][0]].push_back({e[i][1] , e[i][2]});
g[e[i][1]].push_back({e[i][0] , e[i][2]});
}
int r = -1;
for(int i = 0; i < g.size();i++){
if(g[i].size()%2 == 1){
if(r == -1){
r = i;
continue;
}
g[i].push_back({r , u});
g[r].push_back({i , u++});
r = -1;
}
}
for(int i = 0; i < g.size();i++)if(g[i].size() != 0)dfs(i);
for(int i = 0; i < n;i++){
if(ans[i]){
cout << "L";
}else{
cout << "F";
}
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 166ms | 21992 KiB | ||||
| subtask2 | 5/5 | ||||||
| 3 | Accepted | 189ms | 26408 KiB | ||||
| 4 | Accepted | 203ms | 26404 KiB | ||||
| subtask3 | 7/7 | ||||||
| 5 | Accepted | 189ms | 26408 KiB | ||||
| 6 | Accepted | 203ms | 26404 KiB | ||||
| 7 | Accepted | 236ms | 26664 KiB | ||||
| 8 | Accepted | 214ms | 27176 KiB | ||||
| 9 | Accepted | 261ms | 27320 KiB | ||||
| 10 | Accepted | 284ms | 32292 KiB | ||||
| subtask4 | 20/20 | ||||||
| 11 | Accepted | 217ms | 20516 KiB | ||||
| 12 | Accepted | 239ms | 19820 KiB | ||||
| 13 | Accepted | 215ms | 19752 KiB | ||||
| 14 | Accepted | 238ms | 19812 KiB | ||||
| 15 | Accepted | 222ms | 19856 KiB | ||||
| 16 | Accepted | 263ms | 28768 KiB | ||||
| subtask5 | 13/13 | ||||||
| 17 | Accepted | 1ms | 500 KiB | ||||
| 18 | Accepted | 1ms | 508 KiB | ||||
| 19 | Accepted | 1ms | 316 KiB | ||||
| 20 | Accepted | 1ms | 316 KiB | ||||
| 21 | Accepted | 1ms | 316 KiB | ||||
| 22 | Accepted | 1ms | 316 KiB | ||||
| 23 | Accepted | 1ms | 316 KiB | ||||
| 24 | Accepted | 1ms | 316 KiB | ||||
| 25 | Accepted | 1ms | 316 KiB | ||||
| 26 | Accepted | 1ms | 316 KiB | ||||
| 27 | Accepted | 1ms | 316 KiB | ||||
| 28 | Accepted | 1ms | 316 KiB | ||||
| 29 | Accepted | 1ms | 316 KiB | ||||
| 30 | Accepted | 1ms | 316 KiB | ||||
| 31 | Accepted | 1ms | 316 KiB | ||||
| 32 | Accepted | 1ms | 316 KiB | ||||
| 33 | Accepted | 1ms | 316 KiB | ||||
| subtask6 | 20/20 | ||||||
| 34 | Accepted | 1ms | 500 KiB | ||||
| 35 | Accepted | 1ms | 508 KiB | ||||
| 36 | Accepted | 1ms | 316 KiB | ||||
| 37 | Accepted | 1ms | 316 KiB | ||||
| 38 | Accepted | 1ms | 316 KiB | ||||
| 39 | Accepted | 1ms | 316 KiB | ||||
| 40 | Accepted | 1ms | 316 KiB | ||||
| 41 | Accepted | 1ms | 316 KiB | ||||
| 42 | Accepted | 1ms | 316 KiB | ||||
| 43 | Accepted | 1ms | 316 KiB | ||||
| 44 | Accepted | 1ms | 316 KiB | ||||
| 45 | Accepted | 1ms | 316 KiB | ||||
| 46 | Accepted | 1ms | 316 KiB | ||||
| 47 | Accepted | 1ms | 316 KiB | ||||
| 48 | Accepted | 1ms | 316 KiB | ||||
| 49 | Accepted | 1ms | 316 KiB | ||||
| 50 | Accepted | 1ms | 316 KiB | ||||
| 51 | Accepted | 2ms | 564 KiB | ||||
| 52 | Accepted | 2ms | 756 KiB | ||||
| 53 | Accepted | 2ms | 616 KiB | ||||
| 54 | Accepted | 2ms | 564 KiB | ||||
| 55 | Accepted | 2ms | 564 KiB | ||||
| 56 | Accepted | 2ms | 564 KiB | ||||
| 57 | Accepted | 2ms | 564 KiB | ||||
| 58 | Accepted | 2ms | 564 KiB | ||||
| 59 | Accepted | 2ms | 564 KiB | ||||
| 60 | Accepted | 2ms | 564 KiB | ||||
| 61 | Accepted | 2ms | 564 KiB | ||||
| 62 | Accepted | 2ms | 564 KiB | ||||
| 63 | Accepted | 3ms | 796 KiB | ||||
| 64 | Accepted | 2ms | 564 KiB | ||||
| 65 | Accepted | 2ms | 564 KiB | ||||
| subtask7 | 35/35 | ||||||
| 66 | Accepted | 1ms | 500 KiB | ||||
| 67 | Accepted | 167ms | 22200 KiB | ||||
| 68 | Accepted | 189ms | 26408 KiB | ||||
| 69 | Accepted | 203ms | 26404 KiB | ||||
| 70 | Accepted | 236ms | 26664 KiB | ||||
| 71 | Accepted | 214ms | 27176 KiB | ||||
| 72 | Accepted | 261ms | 27320 KiB | ||||
| 73 | Accepted | 284ms | 32292 KiB | ||||
| 74 | Accepted | 217ms | 20516 KiB | ||||
| 75 | Accepted | 239ms | 19820 KiB | ||||
| 76 | Accepted | 215ms | 19752 KiB | ||||
| 77 | Accepted | 238ms | 19812 KiB | ||||
| 78 | Accepted | 222ms | 19856 KiB | ||||
| 79 | Accepted | 263ms | 28768 KiB | ||||
| 80 | Accepted | 1ms | 508 KiB | ||||
| 81 | Accepted | 1ms | 316 KiB | ||||
| 82 | Accepted | 1ms | 316 KiB | ||||
| 83 | Accepted | 1ms | 316 KiB | ||||
| 84 | Accepted | 1ms | 316 KiB | ||||
| 85 | Accepted | 1ms | 316 KiB | ||||
| 86 | Accepted | 1ms | 316 KiB | ||||
| 87 | Accepted | 1ms | 316 KiB | ||||
| 88 | Accepted | 1ms | 316 KiB | ||||
| 89 | Accepted | 1ms | 316 KiB | ||||
| 90 | Accepted | 1ms | 316 KiB | ||||
| 91 | Accepted | 1ms | 316 KiB | ||||
| 92 | Accepted | 1ms | 316 KiB | ||||
| 93 | Accepted | 1ms | 316 KiB | ||||
| 94 | Accepted | 1ms | 316 KiB | ||||
| 95 | Accepted | 1ms | 316 KiB | ||||
| 96 | Accepted | 2ms | 564 KiB | ||||
| 97 | Accepted | 2ms | 756 KiB | ||||
| 98 | Accepted | 2ms | 616 KiB | ||||
| 99 | Accepted | 2ms | 564 KiB | ||||
| 100 | Accepted | 2ms | 564 KiB | ||||
| 101 | Accepted | 2ms | 564 KiB | ||||
| 102 | Accepted | 2ms | 564 KiB | ||||
| 103 | Accepted | 2ms | 564 KiB | ||||
| 104 | Accepted | 2ms | 564 KiB | ||||
| 105 | Accepted | 2ms | 564 KiB | ||||
| 106 | Accepted | 2ms | 564 KiB | ||||
| 107 | Accepted | 2ms | 564 KiB | ||||
| 108 | Accepted | 3ms | 796 KiB | ||||
| 109 | Accepted | 2ms | 564 KiB | ||||
| 110 | Accepted | 2ms | 564 KiB | ||||
| 111 | Accepted | 155ms | 21016 KiB | ||||
| 112 | Accepted | 144ms | 21708 KiB | ||||
| 113 | Accepted | 150ms | 21560 KiB | ||||
| 114 | Accepted | 157ms | 21920 KiB | ||||
| 115 | Accepted | 150ms | 22056 KiB | ||||
| 116 | Accepted | 153ms | 22056 KiB | ||||
| 117 | Accepted | 162ms | 21280 KiB | ||||
| 118 | Accepted | 152ms | 22060 KiB | ||||
| 119 | Accepted | 157ms | 22312 KiB | ||||
| 120 | Accepted | 165ms | 21224 KiB | ||||
| 121 | Accepted | 158ms | 22032 KiB | ||||