165222025-05-06 03:13:53BucsMateÉvzárócpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
2Elfogadva149ms11576 KiB
subtask25/5
3Elfogadva143ms12968 KiB
4Elfogadva149ms12964 KiB
subtask37/7
5Elfogadva143ms12968 KiB
6Elfogadva149ms12964 KiB
7Elfogadva165ms13112 KiB
8Elfogadva164ms13364 KiB
9Elfogadva185ms13376 KiB
10Elfogadva194ms15156 KiB
subtask420/20
11Elfogadva190ms12080 KiB
12Elfogadva182ms12092 KiB
13Elfogadva190ms12088 KiB
14Elfogadva182ms12268 KiB
15Elfogadva177ms12340 KiB
16Elfogadva194ms15156 KiB
subtask513/13
17Elfogadva1ms316 KiB
18Elfogadva1ms316 KiB
19Elfogadva1ms316 KiB
20Elfogadva1ms316 KiB
21Elfogadva1ms316 KiB
22Elfogadva1ms316 KiB
23Elfogadva1ms508 KiB
24Elfogadva1ms316 KiB
25Elfogadva1ms316 KiB
26Elfogadva1ms316 KiB
27Elfogadva1ms320 KiB
28Elfogadva1ms316 KiB
29Elfogadva1ms316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Elfogadva1ms316 KiB
33Elfogadva1ms316 KiB
subtask620/20
34Elfogadva1ms316 KiB
35Elfogadva1ms316 KiB
36Elfogadva1ms316 KiB
37Elfogadva1ms316 KiB
38Elfogadva1ms316 KiB
39Elfogadva1ms316 KiB
40Elfogadva1ms508 KiB
41Elfogadva1ms316 KiB
42Elfogadva1ms316 KiB
43Elfogadva1ms316 KiB
44Elfogadva1ms320 KiB
45Elfogadva1ms316 KiB
46Elfogadva1ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms316 KiB
50Elfogadva1ms316 KiB
51Elfogadva2ms320 KiB
52Elfogadva2ms488 KiB
53Elfogadva2ms316 KiB
54Elfogadva2ms316 KiB
55Elfogadva2ms508 KiB
56Elfogadva3ms508 KiB
57Elfogadva2ms316 KiB
58Elfogadva3ms500 KiB
59Elfogadva2ms420 KiB
60Elfogadva2ms316 KiB
61Elfogadva2ms316 KiB
62Elfogadva2ms320 KiB
63Elfogadva2ms412 KiB
64Elfogadva2ms316 KiB
65Elfogadva2ms392 KiB
subtask735/35
66Elfogadva1ms316 KiB
67Elfogadva150ms9660 KiB
68Elfogadva143ms12968 KiB
69Elfogadva149ms12964 KiB
70Elfogadva165ms13112 KiB
71Elfogadva164ms13364 KiB
72Elfogadva185ms13376 KiB
73Elfogadva194ms15156 KiB
74Elfogadva190ms12080 KiB
75Elfogadva182ms12092 KiB
76Elfogadva190ms12088 KiB
77Elfogadva182ms12268 KiB
78Elfogadva177ms12340 KiB
79Elfogadva194ms15156 KiB
80Elfogadva1ms316 KiB
81Elfogadva1ms316 KiB
82Elfogadva1ms316 KiB
83Elfogadva1ms316 KiB
84Elfogadva1ms316 KiB
85Elfogadva1ms508 KiB
86Elfogadva1ms316 KiB
87Elfogadva1ms316 KiB
88Elfogadva1ms316 KiB
89Elfogadva1ms320 KiB
90Elfogadva1ms316 KiB
91Elfogadva1ms316 KiB
92Elfogadva1ms316 KiB
93Elfogadva1ms316 KiB
94Elfogadva1ms316 KiB
95Elfogadva1ms316 KiB
96Elfogadva2ms320 KiB
97Elfogadva2ms488 KiB
98Elfogadva2ms316 KiB
99Elfogadva2ms316 KiB
100Elfogadva2ms508 KiB
101Elfogadva3ms508 KiB
102Elfogadva2ms316 KiB
103Elfogadva3ms500 KiB
104Elfogadva2ms420 KiB
105Elfogadva2ms316 KiB
106Elfogadva2ms316 KiB
107Elfogadva2ms320 KiB
108Elfogadva2ms412 KiB
109Elfogadva2ms316 KiB
110Elfogadva2ms392 KiB
111Elfogadva135ms11060 KiB
112Elfogadva129ms11500 KiB
113Elfogadva131ms11500 KiB
114Elfogadva137ms11572 KiB
115Elfogadva136ms11696 KiB
116Elfogadva143ms11576 KiB
117Elfogadva141ms11312 KiB
118Elfogadva140ms11648 KiB
119Elfogadva143ms11828 KiB
120Elfogadva145ms11316 KiB
121Elfogadva137ms11620 KiB