241162026-02-04 13:44:54miszorimarciCsoportképcpp17Accepted 100/10027ms820 KiB
#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;

struct con{
    int h, t;
    bool operator<(const con& other) const {
        if (h != other.h) return h < other.h;
        return t < other.t; 
    }
};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int N;cin >> N;
    vector<con> all;
    for (int i = 0; i < N + 1; ++i) {
        int h;cin >> h;
        all.push_back({h, 1});
    }
    for (int i = 0; i < N; ++i) {
        int h;
        cin >> h;
        all.push_back({h, 0});
    }
    sort(all.begin(), all.end());

    vector<long long> dp(N + 2, 0);
    dp[0] = 1;

    for (const auto& person : all) {
        vector<long long> next_dp(N + 2, 0);
        if (person.t == 1) { 
            for (int j = 0; j <= N; ++j) {
                if (dp[j] == 0) continue;
                next_dp[j + 1] = (next_dp[j + 1] + dp[j] * (j + 1)) % MOD;
            }
        } else { 
            for (int j = 2; j <= N + 1; ++j) {
                if (dp[j] == 0) continue;
                next_dp[j - 1] = (next_dp[j - 1] + dp[j] * (j - 1)) % MOD;
            }
        }
        dp = move(next_dp);
    }

    cout << dp[1] << endl;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms508 KiB
2Accepted1ms316 KiB
3Accepted1ms316 KiB
subtask28/8
4Accepted1ms500 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted14ms560 KiB
8Accepted26ms564 KiB
subtask311/11
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
14Accepted1ms420 KiB
15Accepted1ms316 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Accepted1ms540 KiB
19Accepted1ms540 KiB
20Accepted1ms320 KiB
21Accepted1ms508 KiB
22Accepted1ms316 KiB
23Accepted1ms316 KiB
24Accepted1ms316 KiB
25Accepted1ms316 KiB
26Accepted1ms316 KiB
27Accepted1ms316 KiB
28Accepted1ms316 KiB
29Accepted1ms508 KiB
30Accepted1ms316 KiB
subtask414/14
31Accepted1ms316 KiB
32Accepted1ms316 KiB
33Accepted1ms316 KiB
34Accepted1ms316 KiB
35Accepted1ms316 KiB
36Accepted1ms420 KiB
37Accepted1ms316 KiB
38Accepted1ms316 KiB
39Accepted1ms316 KiB
40Accepted1ms540 KiB
41Accepted1ms540 KiB
42Accepted1ms320 KiB
43Accepted1ms508 KiB
44Accepted1ms316 KiB
45Accepted1ms316 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted1ms508 KiB
52Accepted1ms316 KiB
53Accepted1ms316 KiB
54Accepted1ms508 KiB
55Accepted1ms316 KiB
56Accepted1ms316 KiB
57Accepted1ms316 KiB
58Accepted3ms324 KiB
59Accepted1ms500 KiB
60Accepted1ms316 KiB
61Accepted1ms316 KiB
62Accepted1ms316 KiB
63Accepted2ms316 KiB
64Accepted1ms316 KiB
65Accepted1ms420 KiB
66Accepted1ms316 KiB
67Accepted1ms316 KiB
68Accepted1ms316 KiB
69Accepted1ms508 KiB
70Accepted1ms500 KiB
71Accepted1ms316 KiB
subtask515/15
72Accepted1ms316 KiB
73Accepted1ms316 KiB
74Accepted1ms508 KiB
75Accepted1ms316 KiB
76Accepted1ms316 KiB
77Accepted1ms316 KiB
78Accepted1ms508 KiB
79Accepted1ms508 KiB
80Accepted1ms508 KiB
81Accepted1ms316 KiB
82Accepted1ms316 KiB
83Accepted1ms316 KiB
subtask612/12
84Accepted1ms316 KiB
85Accepted1ms316 KiB
86Accepted1ms316 KiB
87Accepted1ms316 KiB
88Accepted1ms316 KiB
89Accepted1ms420 KiB
90Accepted1ms316 KiB
91Accepted1ms316 KiB
92Accepted1ms316 KiB
93Accepted1ms540 KiB
94Accepted1ms540 KiB
95Accepted1ms320 KiB
96Accepted1ms508 KiB
97Accepted1ms316 KiB
98Accepted1ms316 KiB
99Accepted1ms316 KiB
100Accepted1ms316 KiB
101Accepted1ms316 KiB
102Accepted1ms316 KiB
103Accepted1ms316 KiB
104Accepted1ms508 KiB
105Accepted1ms316 KiB
106Accepted1ms316 KiB
107Accepted1ms508 KiB
108Accepted1ms316 KiB
109Accepted1ms316 KiB
110Accepted1ms316 KiB
111Accepted3ms324 KiB
112Accepted1ms500 KiB
113Accepted1ms316 KiB
114Accepted1ms316 KiB
115Accepted1ms316 KiB
116Accepted2ms316 KiB
117Accepted1ms316 KiB
118Accepted1ms420 KiB
119Accepted1ms316 KiB
120Accepted1ms316 KiB
121Accepted1ms316 KiB
122Accepted1ms508 KiB
123Accepted1ms500 KiB
124Accepted1ms316 KiB
125Accepted1ms316 KiB
126Accepted1ms316 KiB
127Accepted1ms508 KiB
128Accepted1ms316 KiB
129Accepted1ms316 KiB
130Accepted1ms316 KiB
131Accepted1ms508 KiB
132Accepted1ms508 KiB
133Accepted1ms508 KiB
134Accepted1ms316 KiB
135Accepted1ms316 KiB
136Accepted1ms316 KiB
137Accepted1ms508 KiB
138Accepted1ms316 KiB
139Accepted1ms332 KiB
140Accepted1ms316 KiB
141Accepted1ms500 KiB
142Accepted1ms316 KiB
143Accepted1ms316 KiB
144Accepted1ms316 KiB
subtask710/10
145Accepted1ms316 KiB
146Accepted1ms316 KiB
147Accepted1ms508 KiB
148Accepted1ms316 KiB
149Accepted1ms316 KiB
150Accepted1ms316 KiB
151Accepted1ms508 KiB
152Accepted1ms508 KiB
153Accepted1ms508 KiB
154Accepted1ms316 KiB
155Accepted1ms316 KiB
156Accepted1ms316 KiB
157Accepted26ms444 KiB
158Accepted26ms568 KiB
159Accepted26ms576 KiB
160Accepted26ms584 KiB
161Accepted26ms568 KiB
162Accepted27ms564 KiB
163Accepted26ms748 KiB
164Accepted26ms752 KiB
165Accepted27ms568 KiB
166Accepted26ms820 KiB
167Accepted26ms564 KiB
168Accepted26ms756 KiB
subtask830/30
169Accepted1ms316 KiB
170Accepted1ms316 KiB
171Accepted1ms316 KiB
172Accepted1ms500 KiB
173Accepted1ms316 KiB
174Accepted1ms316 KiB
175Accepted14ms560 KiB
176Accepted26ms564 KiB
177Accepted1ms316 KiB
178Accepted1ms316 KiB
179Accepted1ms420 KiB
180Accepted1ms316 KiB
181Accepted1ms316 KiB
182Accepted1ms316 KiB
183Accepted1ms540 KiB
184Accepted1ms540 KiB
185Accepted1ms320 KiB
186Accepted1ms508 KiB
187Accepted1ms316 KiB
188Accepted1ms316 KiB
189Accepted1ms316 KiB
190Accepted1ms316 KiB
191Accepted1ms316 KiB
192Accepted1ms316 KiB
193Accepted1ms316 KiB
194Accepted1ms508 KiB
195Accepted1ms316 KiB
196Accepted1ms316 KiB
197Accepted1ms508 KiB
198Accepted1ms316 KiB
199Accepted1ms316 KiB
200Accepted1ms316 KiB
201Accepted3ms324 KiB
202Accepted1ms500 KiB
203Accepted1ms316 KiB
204Accepted1ms316 KiB
205Accepted1ms316 KiB
206Accepted2ms316 KiB
207Accepted1ms316 KiB
208Accepted1ms420 KiB
209Accepted1ms316 KiB
210Accepted1ms316 KiB
211Accepted1ms316 KiB
212Accepted1ms508 KiB
213Accepted1ms500 KiB
214Accepted1ms316 KiB
215Accepted1ms316 KiB
216Accepted1ms316 KiB
217Accepted1ms508 KiB
218Accepted1ms316 KiB
219Accepted1ms316 KiB
220Accepted1ms316 KiB
221Accepted1ms508 KiB
222Accepted1ms508 KiB
223Accepted1ms508 KiB
224Accepted1ms316 KiB
225Accepted1ms316 KiB
226Accepted1ms316 KiB
227Accepted1ms508 KiB
228Accepted1ms316 KiB
229Accepted1ms332 KiB
230Accepted1ms316 KiB
231Accepted1ms500 KiB
232Accepted1ms316 KiB
233Accepted1ms316 KiB
234Accepted1ms316 KiB
235Accepted26ms444 KiB
236Accepted26ms568 KiB
237Accepted26ms576 KiB
238Accepted26ms584 KiB
239Accepted26ms568 KiB
240Accepted27ms564 KiB
241Accepted26ms748 KiB
242Accepted26ms752 KiB
243Accepted27ms568 KiB
244Accepted26ms820 KiB
245Accepted26ms564 KiB
246Accepted26ms756 KiB
247Accepted26ms564 KiB
248Accepted26ms316 KiB
249Accepted26ms556 KiB
250Accepted26ms760 KiB
251Accepted27ms316 KiB
252Accepted26ms316 KiB
253Accepted26ms748 KiB
254Accepted27ms316 KiB
255Accepted26ms508 KiB