169362025-05-15 22:57:12Valaki2Évzárócpp17Hibás válasz 20/100177ms24748 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

const int MAXN = 300'001;

bool vis[MAXN];
int vx[MAXN], vy[MAXN];
vector<pair<int, int>> g[MAXN];
int ptr[MAXN];
bool del[MAXN];
int ans[MAXN];
int deg[MAXN];

void dfs(int cur, int col = 0) {
    while(ptr[cur] < g[cur].size()) {
        int nei = g[cur][ptr[cur]].fi;
        int id = g[cur][ptr[cur]].se;
        if(del[id]) {
            ptr[cur]++;
            continue;
        }
        del[id] = true;
        ans[id] = col;
        deg[cur]++;
        deg[nei]++;
        ptr[cur]++;
        dfs(nei, 1 - col);
    }
}

void solve() {
    int n; cin >> n;
    vector<int> comp1, comp2;
    for (int i = 1; i <= n; i++) {
        cin >> vx[i] >> vy[i];
        comp1.emplace_back(vx[i]);
        comp2.emplace_back(vy[i]);
    }
    sort(comp1.begin(), comp1.end());
    sort(comp2.begin(), comp2.end());
    comp1.erase(unique(comp1.begin(), comp1.end()), comp1.end());
    comp2.erase(unique(comp2.begin(), comp2.end()), comp2.end());
    for (int i = 1; i <= n; i++) {
        vx[i] = lower_bound(comp1.begin(), comp1.end(), vx[i])-comp1.begin();
        vy[i] = lower_bound(comp2.begin(), comp2.end(), vy[i])-comp2.begin();
        g[vx[i]].emplace_back(vy[i]+n, i);
        g[vy[i]+n].emplace_back(vx[i], i);
    }

    for(int i = 0; i < 2 * n; i++) {
        if((g[i].size() - deg[i]) % 2 == 1) {
            dfs(i);
        }
    }

    for(int i = 0; i < 2 * n; i++) {
        dfs(i);
    }

    for (int i = 1; i <= n; i++) cout << (ans[i]?'F':'L');
    cout << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    // int T; cin >> T; while(T--)
    solve();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms7476 KiB
2Hibás válasz107ms24224 KiB
subtask20/5
3Hibás válasz98ms17820 KiB
4Hibás válasz92ms17824 KiB
subtask30/7
5Hibás válasz98ms17820 KiB
6Hibás válasz92ms17824 KiB
7Hibás válasz114ms18076 KiB
8Hibás válasz111ms18588 KiB
9Hibás válasz126ms18784 KiB
10Elfogadva173ms20896 KiB
subtask420/20
11Elfogadva177ms23456 KiB
12Elfogadva172ms22436 KiB
13Elfogadva151ms22176 KiB
14Elfogadva150ms22176 KiB
15Elfogadva138ms22212 KiB
16Elfogadva158ms20900 KiB
subtask50/13
17Elfogadva8ms7476 KiB
18Hibás válasz8ms7712 KiB
19Hibás válasz7ms7476 KiB
20Hibás válasz7ms7476 KiB
21Hibás válasz8ms7668 KiB
22Hibás válasz7ms7512 KiB
23Elfogadva7ms7476 KiB
24Elfogadva8ms7476 KiB
25Elfogadva7ms7504 KiB
26Elfogadva8ms7480 KiB
27Elfogadva7ms7268 KiB
28Elfogadva8ms7476 KiB
29Elfogadva6ms7396 KiB
30Elfogadva7ms7480 KiB
31Hibás válasz8ms7476 KiB
32Hibás válasz8ms7364 KiB
33Hibás válasz6ms7480 KiB
subtask60/20
34Elfogadva8ms7476 KiB
35Hibás válasz8ms7712 KiB
36Hibás válasz7ms7476 KiB
37Hibás válasz7ms7476 KiB
38Hibás válasz8ms7668 KiB
39Hibás válasz7ms7512 KiB
40Elfogadva7ms7476 KiB
41Elfogadva8ms7476 KiB
42Elfogadva7ms7504 KiB
43Elfogadva8ms7480 KiB
44Elfogadva7ms7268 KiB
45Elfogadva8ms7476 KiB
46Elfogadva6ms7396 KiB
47Elfogadva7ms7480 KiB
48Hibás válasz8ms7476 KiB
49Hibás válasz8ms7364 KiB
50Hibás válasz6ms7480 KiB
51Elfogadva7ms7644 KiB
52Elfogadva7ms7476 KiB
53Elfogadva8ms7476 KiB
54Elfogadva8ms7476 KiB
55Hibás válasz8ms7696 KiB
56Hibás válasz8ms7528 KiB
57Elfogadva7ms7488 KiB
58Elfogadva8ms7596 KiB
59Hibás válasz8ms7480 KiB
60Hibás válasz7ms7476 KiB
61Hibás válasz8ms7476 KiB
62Hibás válasz8ms7476 KiB
63Hibás válasz7ms7828 KiB
64Hibás válasz8ms7476 KiB
65Hibás válasz7ms7476 KiB
subtask70/35
66Elfogadva8ms7476 KiB
67Hibás válasz103ms24304 KiB
68Hibás válasz98ms17820 KiB
69Hibás válasz92ms17824 KiB
70Hibás válasz114ms18076 KiB
71Hibás válasz111ms18588 KiB
72Hibás válasz126ms18784 KiB
73Elfogadva173ms20896 KiB
74Elfogadva177ms23456 KiB
75Elfogadva172ms22436 KiB
76Elfogadva151ms22176 KiB
77Elfogadva150ms22176 KiB
78Elfogadva138ms22212 KiB
79Elfogadva158ms20900 KiB
80Hibás válasz8ms7712 KiB
81Hibás válasz7ms7476 KiB
82Hibás válasz7ms7476 KiB
83Hibás válasz8ms7668 KiB
84Hibás válasz7ms7512 KiB
85Elfogadva7ms7476 KiB
86Elfogadva8ms7476 KiB
87Elfogadva7ms7504 KiB
88Elfogadva8ms7480 KiB
89Elfogadva7ms7268 KiB
90Elfogadva8ms7476 KiB
91Elfogadva6ms7396 KiB
92Elfogadva7ms7480 KiB
93Hibás válasz8ms7476 KiB
94Hibás válasz8ms7364 KiB
95Hibás válasz6ms7480 KiB
96Elfogadva7ms7644 KiB
97Elfogadva7ms7476 KiB
98Elfogadva8ms7476 KiB
99Elfogadva8ms7476 KiB
100Hibás válasz8ms7696 KiB
101Hibás válasz8ms7528 KiB
102Elfogadva7ms7488 KiB
103Elfogadva8ms7596 KiB
104Hibás válasz8ms7480 KiB
105Hibás válasz7ms7476 KiB
106Hibás válasz8ms7476 KiB
107Hibás válasz8ms7476 KiB
108Hibás válasz7ms7828 KiB
109Hibás válasz8ms7476 KiB
110Hibás válasz7ms7476 KiB
111Elfogadva93ms23352 KiB
112Elfogadva83ms24336 KiB
113Elfogadva90ms24352 KiB
114Elfogadva93ms24232 KiB
115Hibás válasz93ms24420 KiB
116Hibás válasz90ms24504 KiB
117Hibás válasz93ms23708 KiB
118Hibás válasz94ms24480 KiB
119Hibás válasz93ms24748 KiB
120Hibás válasz97ms23656 KiB
121Hibás válasz94ms24476 KiB