165222025-05-06 03:13:53BucsMateÉvzárócpp17Accepted 100/100194ms15156 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>

using namespace std;

vector<vector<pair<int, int>>> sorok;
vector<bool> visited;
vector<int> color;


void DFS(int curr, int nextColor)
{
    while(!sorok[curr].empty()){
        pair<int, int> next = sorok[curr][sorok[curr].size() - 1];
        sorok[curr].pop_back();
        if(visited[next.second]){
            continue;
        }
        visited[next.second] = true;
        color[next.second] = nextColor;

        DFS(next.first, -nextColor);
        return;
    }
}

int main()
{
    int N;
    cin >> N;

    vector<pair<int, int>> pontok(N);
    vector<int> koordx(N), koordy(N);
    for(int i = 0; i < N; i++){
        cin >> pontok[i].first >> pontok[i].second;
        koordx[i] = pontok[i].first;
        koordy[i] = pontok[i].second;
    }
    sort(koordx.begin(), koordx.end());
    sort(koordy.begin(), koordy.end());

    koordx.erase(unique(koordx.begin(), koordx.end()), koordx.end());
    koordy.erase(unique(koordy.begin(), koordy.end()), koordy.end());
    sorok.resize(2*N+1);

    for(int i = 0; i < N; i++){
        pontok[i].first = lower_bound(koordx.begin(), koordx.end(), pontok[i].first) - koordx.begin();
        pontok[i].second = lower_bound(koordy.begin(), koordy.end(), pontok[i].second) - koordy.begin() + N;
        sorok[pontok[i].first].push_back({pontok[i].second, i});
        sorok[pontok[i].second].push_back({pontok[i].first, i});
    }
    visited.assign(N, false);
    color.assign(N, 1);

    for(int i = 0; i < N; i++){
        int nextColor = 1;
        while(!sorok[i].empty()){
            DFS(i, nextColor);
            nextColor = -nextColor;
        }
    }

    for(int i = 0; i < N; i++){
        if(color[i] == 1){
            cout << "F";
        }
        else{
            cout << "L";
        }
    }
    cout << endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms508 KiB
2Accepted149ms11576 KiB
subtask25/5
3Accepted143ms12968 KiB
4Accepted149ms12964 KiB
subtask37/7
5Accepted143ms12968 KiB
6Accepted149ms12964 KiB
7Accepted165ms13112 KiB
8Accepted164ms13364 KiB
9Accepted185ms13376 KiB
10Accepted194ms15156 KiB
subtask420/20
11Accepted190ms12080 KiB
12Accepted182ms12092 KiB
13Accepted190ms12088 KiB
14Accepted182ms12268 KiB
15Accepted177ms12340 KiB
16Accepted194ms15156 KiB
subtask513/13
17Accepted1ms316 KiB
18Accepted1ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms316 KiB
21Accepted1ms316 KiB
22Accepted1ms316 KiB
23Accepted1ms508 KiB
24Accepted1ms316 KiB
25Accepted1ms316 KiB
26Accepted1ms316 KiB
27Accepted1ms320 KiB
28Accepted1ms316 KiB
29Accepted1ms316 KiB
30Accepted1ms316 KiB
31Accepted1ms316 KiB
32Accepted1ms316 KiB
33Accepted1ms316 KiB
subtask620/20
34Accepted1ms316 KiB
35Accepted1ms316 KiB
36Accepted1ms316 KiB
37Accepted1ms316 KiB
38Accepted1ms316 KiB
39Accepted1ms316 KiB
40Accepted1ms508 KiB
41Accepted1ms316 KiB
42Accepted1ms316 KiB
43Accepted1ms316 KiB
44Accepted1ms320 KiB
45Accepted1ms316 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted2ms320 KiB
52Accepted2ms488 KiB
53Accepted2ms316 KiB
54Accepted2ms316 KiB
55Accepted2ms508 KiB
56Accepted3ms508 KiB
57Accepted2ms316 KiB
58Accepted3ms500 KiB
59Accepted2ms420 KiB
60Accepted2ms316 KiB
61Accepted2ms316 KiB
62Accepted2ms320 KiB
63Accepted2ms412 KiB
64Accepted2ms316 KiB
65Accepted2ms392 KiB
subtask735/35
66Accepted1ms316 KiB
67Accepted150ms9660 KiB
68Accepted143ms12968 KiB
69Accepted149ms12964 KiB
70Accepted165ms13112 KiB
71Accepted164ms13364 KiB
72Accepted185ms13376 KiB
73Accepted194ms15156 KiB
74Accepted190ms12080 KiB
75Accepted182ms12092 KiB
76Accepted190ms12088 KiB
77Accepted182ms12268 KiB
78Accepted177ms12340 KiB
79Accepted194ms15156 KiB
80Accepted1ms316 KiB
81Accepted1ms316 KiB
82Accepted1ms316 KiB
83Accepted1ms316 KiB
84Accepted1ms316 KiB
85Accepted1ms508 KiB
86Accepted1ms316 KiB
87Accepted1ms316 KiB
88Accepted1ms316 KiB
89Accepted1ms320 KiB
90Accepted1ms316 KiB
91Accepted1ms316 KiB
92Accepted1ms316 KiB
93Accepted1ms316 KiB
94Accepted1ms316 KiB
95Accepted1ms316 KiB
96Accepted2ms320 KiB
97Accepted2ms488 KiB
98Accepted2ms316 KiB
99Accepted2ms316 KiB
100Accepted2ms508 KiB
101Accepted3ms508 KiB
102Accepted2ms316 KiB
103Accepted3ms500 KiB
104Accepted2ms420 KiB
105Accepted2ms316 KiB
106Accepted2ms316 KiB
107Accepted2ms320 KiB
108Accepted2ms412 KiB
109Accepted2ms316 KiB
110Accepted2ms392 KiB
111Accepted135ms11060 KiB
112Accepted129ms11500 KiB
113Accepted131ms11500 KiB
114Accepted137ms11572 KiB
115Accepted136ms11696 KiB
116Accepted143ms11576 KiB
117Accepted141ms11312 KiB
118Accepted140ms11648 KiB
119Accepted143ms11828 KiB
120Accepted145ms11316 KiB
121Accepted137ms11620 KiB