File size: 212,961 Bytes
aff484f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
task_name,problem_type,instruction,instance,solution,obj,instance_variant,solution_variant,context_index,input_format,input_index_base
UFLP,UFLP,"Someone at planning has to balance the budget and convenience: decide which neighborhood libraries to open and make sure every regular reader is linked to one of the opened branches. For any setup, the city’s outlay equals the sum of the opening fees for the selected branches plus the travel cost for each reader to their single assigned branch; the setups with lower combined totals are preferable. Readers can only go to branches that are actually opened, no one is left unassigned, and libraries can serve any number of people. The detailed data are shown below.

# num_candidate_libraries=2
# num_readers_total=5
# LIBRARYS
library_id,opening_fee
F1,1035
F2,1123
# READERS
reader_id
1
2
3
4
5
# TRAVELS
library_id,reader_id,travel_cost
F1,1,907
F1,2,615
F1,3,966
F1,4,376
F1,5,783
F2,1,46
F2,2,206
F2,3,401
F2,4,644
F2,5,478

If you want to send back a candidate setup, just use this simple JSON layout so I can read it reliably.

{
  ""solution"": {
    ""selected"": [<library_to_open>, <library_to_open>, ...],
    ""assignments"": [<chosen_open_library>, <chosen_open_library>, ...]
  }
}

Here, ""selected"" is the list of library locations you plan to open, and ""assignments"" is a list giving, for each reader in the input order, which opened library they would go to. Think of it like filling out a short form: pick the branches you open, then for every reader say which branch they use.

This JSON is only a sketch of the expected shape β€” not the final answer. Please make sure to use the exact identifiers from the instance input, with no renaming and no extra labels:
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”"".","{'opening_costs': [1035, 1123], 'connection_costs': [[907, 615, 966, 376, 783], [46, 206, 401, 644, 478]], 'objective': 2898.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",2898.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1035}, {'id': 'F2', 'opening_cost': 1123}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 907}, {'facility': 'F1', 'customer': 2, 'cost': 615}, {'facility': 'F1', 'customer': 3, 'cost': 966}, {'facility': 'F1', 'customer': 4, 'cost': 376}, {'facility': 'F1', 'customer': 5, 'cost': 783}, {'facility': 'F2', 'customer': 1, 'cost': 46}, {'facility': 'F2', 'customer': 2, 'cost': 206}, {'facility': 'F2', 'customer': 3, 'cost': 401}, {'facility': 'F2', 'customer': 4, 'cost': 644}, {'facility': 'F2', 'customer': 5, 'cost': 478}], 'objective': 2898.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",1,csv,1
UFLP,UFLP,"At the festival the logistical brief was: decide which kitchens to switch on and which switched-on kitchen will take care of each order. Each kitchen has an activation charge, and assigning an order to a kitchen brings a delivery-distance cost; the overall cost of any choice equals the sum of the activation charges for the kitchens used plus the delivery distances for every order. All orders must be assigned to one active kitchen only, and active kitchens can serve any number of orders, so the aim is to end up with the combination that produces the smallest total cost. The specific kitchens, their fees and the list of orders are shown below.

{
  ""num_kitchens"": 2,
  ""num_orders"": 5,
  ""kitchens"": [
    {
      ""kitchen_id"": ""F1"",
      ""activation_fee"": 6266
    },
    {
      ""kitchen_id"": ""F2"",
      ""activation_fee"": 2140
    }
  ],
  ""orders"": [
    {
      ""order_id"": 0
    },
    {
      ""order_id"": 1
    },
    {
      ""order_id"": 2
    },
    {
      ""order_id"": 3
    },
    {
      ""order_id"": 4
    }
  ],
  ""delivery_distances"": [
    {
      ""kitchen_id"": ""F1"",
      ""order_id"": 0,
      ""delivery_distance"": 954
    },
    {
      ""kitchen_id"": ""F1"",
      ""order_id"": 1,
      ""delivery_distance"": 354
    },
    {
      ""kitchen_id"": ""F1"",
      ""order_id"": 2,
      ""delivery_distance"": 145
    },
    {
      ""kitchen_id"": ""F1"",
      ""order_id"": 3,
      ""delivery_distance"": 408
    },
    {
      ""kitchen_id"": ""F1"",
      ""order_id"": 4,
      ""delivery_distance"": 207
    },
    {
      ""kitchen_id"": ""F2"",
      ""order_id"": 0,
      ""delivery_distance"": 665
    },
    {
      ""kitchen_id"": ""F2"",
      ""order_id"": 1,
      ""delivery_distance"": 93
    },
    {
      ""kitchen_id"": ""F2"",
      ""order_id"": 2,
      ""delivery_distance"": 569
    },
    {
      ""kitchen_id"": ""F2"",
      ""order_id"": 3,
      ""delivery_distance"": 616
    },
    {
      ""kitchen_id"": ""F2"",
      ""order_id"": 4,
      ""delivery_distance"": 549
    }
  ]
}

If you want to hand the plan back to me in a tidy form, a simple JSON sketch like this is perfect β€” nothing fancy, just the shape I expect:

{
  ""solution"": {
    ""selected"": [<kitchen_to_switch_on>, <kitchen_to_switch_on>, ...],
    ""assignments"": [<chosen_switched_on_kitchen>, <chosen_switched_on_kitchen>, ...]
  }
}

Think of ""selected"" as the list of kitchens you flip on (just put their exact IDs in that list), and ""assignments"" as, for each order in the same sequence as the input, which switched-on kitchen will handle it. Super casual: it's just two lists β€” which kitchens are active, and who serves which order.

This JSON is only a sketch of the expected shape, not the final answer β€” fill in the real kitchen IDs and assignments when you submit.

Also: all identifiers must be used exactly as they appear in the instance input β€” no renaming and no new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [6266, 2140], 'connection_costs': [[954, 354, 145, 408, 207], [665, 93, 569, 616, 549]], 'objective': 4632.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",4632.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 6266}, {'id': 'F2', 'opening_cost': 2140}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 954}, {'facility': 'F1', 'customer': 1, 'cost': 354}, {'facility': 'F1', 'customer': 2, 'cost': 145}, {'facility': 'F1', 'customer': 3, 'cost': 408}, {'facility': 'F1', 'customer': 4, 'cost': 207}, {'facility': 'F2', 'customer': 0, 'cost': 665}, {'facility': 'F2', 'customer': 1, 'cost': 93}, {'facility': 'F2', 'customer': 2, 'cost': 569}, {'facility': 'F2', 'customer': 3, 'cost': 616}, {'facility': 'F2', 'customer': 4, 'cost': 549}], 'objective': 4632.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",2,json,0
UFLP,UFLP,"I’m trying to sort out which EV chargers to put in our apartment complex and how to link each resident’s car to one of the chargers. The idea is to pick a set of chargers to install (each has an installation fee) and then sign each car up to exactly one of the chargers that actually gets installed. A plan is better when the overall bill is lower β€” just add up all the installation fees for the chargers chosen plus the walking distance for every resident from their parking spot to their assigned charger β€” and the goal is to make that total as small as possible. Chargers can serve more than one car, but no car can be left unassigned or signed up to more than one charger. Concrete details about candidate charger locations, installation costs, residents, and distances are listed below.

# num_candidate_chargers=2
# num_resident_cars=6
# CHARGERS
charger_id,installation_cost
F1,2000
F2,2000
# RESIDENT_CARS
resident_car_id
A
B
C
D
E
F
# WALKING_DISTANCES
charger_id,resident_car_id,walking_distance
F1,A,456
F1,B,345
F1,C,235
F1,D,796
F1,E,527
F1,F,823
F2,A,924
F2,B,363
F2,C,638
F2,D,112
F2,E,986
F2,F,432

When you reply with a plan, please use this simple JSON layout so I can parse it easily:

{
  ""solution"": {
    ""selected"": [<charger_site_to_open>, <charger_site_to_open>, ...],
    ""assignments"": [<assigned_charger_site>, <assigned_charger_site>, ...]
  }
}

""selected"" is where you list the charger locations you want to install. ""assignments"" is a list with one entry per resident showing which installed charger they’ll use. Think of it like filling out a form: which chargers are installed, and for each resident, which charger they get. This is just the shape I need β€” not the final answer.

Please use the exact identifiers from the instance input β€” don’t rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000], 'connection_costs': [[456, 345, 235, 796, 527, 823], [924, 363, 638, 112, 986, 432]], 'objective': 5182.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",5182.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 456}, {'facility': 'F1', 'customer': 'B', 'cost': 345}, {'facility': 'F1', 'customer': 'C', 'cost': 235}, {'facility': 'F1', 'customer': 'D', 'cost': 796}, {'facility': 'F1', 'customer': 'E', 'cost': 527}, {'facility': 'F1', 'customer': 'F', 'cost': 823}, {'facility': 'F2', 'customer': 'A', 'cost': 924}, {'facility': 'F2', 'customer': 'B', 'cost': 363}, {'facility': 'F2', 'customer': 'C', 'cost': 638}, {'facility': 'F2', 'customer': 'D', 'cost': 112}, {'facility': 'F2', 'customer': 'E', 'cost': 986}, {'facility': 'F2', 'customer': 'F', 'cost': 432}], 'objective': 5182.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",3,csv,names
UFLP,UFLP,"Many people browse the clothing tents at the market, and the organizer needs to pick which pop-up stalls to pay for and then route every shopper to one of the paid stalls. Each stall carries a rent, and each shopper’s walk to their stall carries a travel cost, so the best setup is the one with the lowest total: add the rents for all the stalls that are booked and the travel cost for every shopper to reach their single assigned stall. Each shopper must be matched to exactly one rented stall, and shoppers are only allowed to go to stalls that were actually rented. The concrete details about stalls, prices, and shoppers appear below.

# num_candidate_stalls=3
# num_shoppers=7
# STALLS
stall_id,stall_rent
F1,1244
F2,1295
F3,1434
# SHOPPERS
shopper_id
A
B
C
D
E
F
G
# SHOPPER_WALKS
stall_id,shopper_id,shopper_walk_cost
F1,A,475
F1,B,251
F1,C,838
F1,D,367
F1,E,765
F1,F,254
F1,G,950
F2,A,527
F2,B,573
F2,C,300
F2,D,315
F2,E,798
F2,F,648
F2,G,927
F3,A,78
F3,B,217
F3,C,691
F3,D,609
F3,E,73
F3,F,808
F3,G,798

Also, when you hand back the final plan, please use this JSON layout so it's easy to read and check:

{
  ""solution"": {
    ""selected"": [<stall_to_rent>, <stall_to_rent>, ...],
    ""assignments"": [<chosen_rented_stall>, <chosen_rented_stall>, ...]
  }
}

Pretty simple: ""selected"" is the list of stalls you decide to rent, and ""assignments"" lists, in the same order as the shoppers appear in the instance, which rented stall each shopper goes to. Think of it as a short form: which stalls are paid for, and then one chosen stall per shopper.

This JSON is just a sketch of the shape I expect, not the actual solution. All identifiers you use must match the instance exactly β€” do not rename them or invent new labels. 

- for example: ""Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".""","{'opening_costs': [1244, 1295, 1434], 'connection_costs': [[475, 251, 838, 367, 765, 254, 950], [527, 573, 300, 315, 798, 648, 927], [78, 217, 691, 609, 73, 808, 798]], 'objective': 4708.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2]}",4708.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1244}, {'id': 'F2', 'opening_cost': 1295}, {'id': 'F3', 'opening_cost': 1434}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 475}, {'facility': 'F1', 'customer': 'B', 'cost': 251}, {'facility': 'F1', 'customer': 'C', 'cost': 838}, {'facility': 'F1', 'customer': 'D', 'cost': 367}, {'facility': 'F1', 'customer': 'E', 'cost': 765}, {'facility': 'F1', 'customer': 'F', 'cost': 254}, {'facility': 'F1', 'customer': 'G', 'cost': 950}, {'facility': 'F2', 'customer': 'A', 'cost': 527}, {'facility': 'F2', 'customer': 'B', 'cost': 573}, {'facility': 'F2', 'customer': 'C', 'cost': 300}, {'facility': 'F2', 'customer': 'D', 'cost': 315}, {'facility': 'F2', 'customer': 'E', 'cost': 798}, {'facility': 'F2', 'customer': 'F', 'cost': 648}, {'facility': 'F2', 'customer': 'G', 'cost': 927}, {'facility': 'F3', 'customer': 'A', 'cost': 78}, {'facility': 'F3', 'customer': 'B', 'cost': 217}, {'facility': 'F3', 'customer': 'C', 'cost': 691}, {'facility': 'F3', 'customer': 'D', 'cost': 609}, {'facility': 'F3', 'customer': 'E', 'cost': 73}, {'facility': 'F3', 'customer': 'F', 'cost': 808}, {'facility': 'F3', 'customer': 'G', 'cost': 798}], 'objective': 4708.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",4,csv,names
UFLP,UFLP,"Recently the neighborhood board brought up which community tool sheds to keep maintained and how to assign homes to them. The job is to choose some sheds to pay for and then register each household with a single kept shed β€” households can only access sheds on that maintained list. To pick the best arrangement, you add the maintenance costs for the kept sheds and the travel cost for each household to reach its assigned shed; the arrangement with the lowest total of those added costs is preferred. No home can be left out or listed twice. The detailed costs and household distances are provided below.

There are 2 candidate sheds, 5 households, and the shed maintenance costs are 2000, 2000.
Shed F1 has maintenance cost 2000.
Shed F2 has maintenance cost 2000.
Household A would incur travel cost 192 to reach shed F1.
Household B would incur travel cost 355 to reach shed F1.
Household C would incur travel cost 448 to reach shed F1.
Household D would incur travel cost 826 to reach shed F1.
Household E would incur travel cost 593 to reach shed F1.
Household A would incur travel cost 476 to reach shed F2.
Household B would incur travel cost 647 to reach shed F2.
Household C would incur travel cost 363 to reach shed F2.
Household D would incur travel cost 979 to reach shed F2.
Household E would incur travel cost 417 to reach shed F2.
Use these entries to pick which sheds to keep and to assign every household so the combined maintenance plus travel cost is minimized.

Also, when you send the actual solution back, just stick to a small JSON shape so it's easy to check. Something casual like this will do:

{
  ""solution"": {
    ""selected"": [<shed_to_keep>, <shed_to_keep>, ...],
    ""assignments"": [<assigned_shed>, <assigned_shed>, ...]
  }
}

Here ""selected"" is the list of shed locations you choose to keep (their IDs), and ""assignments"" lists, for each household in the same order as the input, which kept shed they're signed up to. Think of it like filling out a simple form β€” which sheds are kept and where each house is registered. This JSON is just the sketch of the shape I expect, not the filled-in answer.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000], 'connection_costs': [[192, 355, 448, 826, 593], [476, 647, 363, 979, 417]], 'objective': 4414.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",4414.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 192}, {'facility': 'F1', 'customer': 'B', 'cost': 355}, {'facility': 'F1', 'customer': 'C', 'cost': 448}, {'facility': 'F1', 'customer': 'D', 'cost': 826}, {'facility': 'F1', 'customer': 'E', 'cost': 593}, {'facility': 'F2', 'customer': 'A', 'cost': 476}, {'facility': 'F2', 'customer': 'B', 'cost': 647}, {'facility': 'F2', 'customer': 'C', 'cost': 363}, {'facility': 'F2', 'customer': 'D', 'cost': 979}, {'facility': 'F2', 'customer': 'E', 'cost': 417}], 'objective': 4414.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",5,nl,names
UFLP,UFLP,"Back when the shop was deciding routes for the month, the owner had to choose which mobile grooming vans to deploy and who would service each client. The constraint was clear: each appointment must be covered by exactly one van that was actually sent out β€” no appointment left out, no appointment served twice, and no assigning to vans that weren’t deployed. A smarter schedule is simply the cheaper one overall: add together the deployment charges for the vans chosen and the travel costs for every appointment, and keep that combined amount as low as possible. The detailed van information and appointments are shown below.

# num_candidate_vans=3
# num_appointments=7
# VANS
van_id,deployment_cost
F1,7637
F2,9350
F3,1987
# APPOINTMENTS
appointment_id
1
2
3
4
5
6
7
# TRAVELS
van_id,appointment_id,travel_cost
F1,1,272
F1,2,443
F1,3,443
F1,4,314
F1,5,602
F1,6,286
F1,7,306
F2,1,813
F2,2,963
F2,3,689
F2,4,509
F2,5,802
F2,6,839
F2,7,102
F3,1,489
F3,2,727
F3,3,90
F3,4,529
F3,5,224
F3,6,200
F3,7,143

If you want to tell me which vans you actually sent and who each client got, please use this simple JSON layout so it's easy to read and check:

{
  ""solution"": {
    ""selected"": [<van_to_deploy>, <van_to_deploy>, ...],
    ""assignments"": [<van_assigned_to_customer>, <van_assigned_to_customer>, ...]
  }
}

Pretty straightforward: ""selected"" is the list of vans you decide to send out, and ""assignments"" lists, in the same order as the appointments in the instance, which van handles each appointment. Think of it like filling out a form β€” pick the vans you deploy, then next to each client write the van that will serve them.

This JSON is just the expected shape β€” a sketch β€” not the actual solution.

Important: all identifiers must be used exactly as they appear in the instance input β€” no renaming and no new labels.
For example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [7637, 9350, 1987], 'connection_costs': [[272, 443, 443, 314, 602, 286, 306], [813, 963, 689, 509, 802, 839, 102], [489, 727, 90, 529, 224, 200, 143]], 'objective': 4389.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2]}",4389.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 7637}, {'id': 'F2', 'opening_cost': 9350}, {'id': 'F3', 'opening_cost': 1987}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 272}, {'facility': 'F1', 'customer': 2, 'cost': 443}, {'facility': 'F1', 'customer': 3, 'cost': 443}, {'facility': 'F1', 'customer': 4, 'cost': 314}, {'facility': 'F1', 'customer': 5, 'cost': 602}, {'facility': 'F1', 'customer': 6, 'cost': 286}, {'facility': 'F1', 'customer': 7, 'cost': 306}, {'facility': 'F2', 'customer': 1, 'cost': 813}, {'facility': 'F2', 'customer': 2, 'cost': 963}, {'facility': 'F2', 'customer': 3, 'cost': 689}, {'facility': 'F2', 'customer': 4, 'cost': 509}, {'facility': 'F2', 'customer': 5, 'cost': 802}, {'facility': 'F2', 'customer': 6, 'cost': 839}, {'facility': 'F2', 'customer': 7, 'cost': 102}, {'facility': 'F3', 'customer': 1, 'cost': 489}, {'facility': 'F3', 'customer': 2, 'cost': 727}, {'facility': 'F3', 'customer': 3, 'cost': 90}, {'facility': 'F3', 'customer': 4, 'cost': 529}, {'facility': 'F3', 'customer': 5, 'cost': 224}, {'facility': 'F3', 'customer': 6, 'cost': 200}, {'facility': 'F3', 'customer': 7, 'cost': 143}], 'objective': 4389.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",6,csv,1
UFLP,UFLP,"Many people on the planning team are working through a straightforward trade-off: open more pickup hubs (which costs money) or have customers travel farther (which raises travel bills). The task is to choose which hubs to open and register each customer to a single opened hub so that when you add together the hub opening charges and all customer travel costs the total is as small as it can be. Every customer must be assigned to exactly one hub that’s been opened, and customers can’t use hubs that remain closed. The specific options and numbers are shown below.

{
  ""num_candidate_hubs"": 3,
  ""num_registered_customers"": 8,
  ""hubs"": [
    {
      ""hub_id"": ""F1"",
      ""hub_opening_fee"": 1000
    },
    {
      ""hub_id"": ""F2"",
      ""hub_opening_fee"": 1000
    },
    {
      ""hub_id"": ""F3"",
      ""hub_opening_fee"": 1000
    }
  ],
  ""customers"": [
    {
      ""customer_id"": 0
    },
    {
      ""customer_id"": 1
    },
    {
      ""customer_id"": 2
    },
    {
      ""customer_id"": 3
    },
    {
      ""customer_id"": 4
    },
    {
      ""customer_id"": 5
    },
    {
      ""customer_id"": 6
    },
    {
      ""customer_id"": 7
    }
  ],
  ""travel_cost_to_hubs"": [
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 0,
      ""travel_cost_to_hub"": 996
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 1,
      ""travel_cost_to_hub"": 548
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 2,
      ""travel_cost_to_hub"": 363
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 3,
      ""travel_cost_to_hub"": 859
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 4,
      ""travel_cost_to_hub"": 857
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 5,
      ""travel_cost_to_hub"": 132
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 6,
      ""travel_cost_to_hub"": 353
    },
    {
      ""hub_id"": ""F1"",
      ""customer_id"": 7,
      ""travel_cost_to_hub"": 718
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 0,
      ""travel_cost_to_hub"": 235
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 1,
      ""travel_cost_to_hub"": 831
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 2,
      ""travel_cost_to_hub"": 627
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 3,
      ""travel_cost_to_hub"": 763
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 4,
      ""travel_cost_to_hub"": 211
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 5,
      ""travel_cost_to_hub"": 260
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 6,
      ""travel_cost_to_hub"": 498
    },
    {
      ""hub_id"": ""F2"",
      ""customer_id"": 7,
      ""travel_cost_to_hub"": 373
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 0,
      ""travel_cost_to_hub"": 42
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 1,
      ""travel_cost_to_hub"": 117
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 2,
      ""travel_cost_to_hub"": 984
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 3,
      ""travel_cost_to_hub"": 943
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 4,
      ""travel_cost_to_hub"": 102
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 5,
      ""travel_cost_to_hub"": 453
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 6,
      ""travel_cost_to_hub"": 648
    },
    {
      ""hub_id"": ""F3"",
      ""customer_id"": 7,
      ""travel_cost_to_hub"": 921
    }
  ]
}

Just so we're on the same page about how I want the answer formatted, please use this simple JSON shape when you send the solution β€” it makes it easy to read and plug into the rest of the workflow.

{
  ""solution"": {
    ""selected"": [<hub_to_open>, <hub_to_open>, ...],
    ""assignments"": [<chosen_open_hub>, <chosen_open_hub>, ...]
  }
}

Think of it like a little form: ""selected"" is the list of hubs you choose to open, and ""assignments"" is the list that says, for each customer (in the same order as the input), which opened hub they will use. This is just the shape I expect β€” fill in the actual identifiers from the instance when you produce the final answer.

Please use the exact identifiers from the instance input β€” don't rename them or invent new labels. 
- for example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [1000, 1000, 1000], 'connection_costs': [[996, 548, 363, 859, 857, 132, 353, 718], [235, 831, 627, 763, 211, 260, 498, 373], [42, 117, 984, 943, 102, 453, 648, 921]], 'objective': 4686.0}","{'open_facilities': [0, 2], 'assignments': [2, 2, 0, 0, 2, 0, 0, 0]}",4686.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 996}, {'facility': 'F1', 'customer': 1, 'cost': 548}, {'facility': 'F1', 'customer': 2, 'cost': 363}, {'facility': 'F1', 'customer': 3, 'cost': 859}, {'facility': 'F1', 'customer': 4, 'cost': 857}, {'facility': 'F1', 'customer': 5, 'cost': 132}, {'facility': 'F1', 'customer': 6, 'cost': 353}, {'facility': 'F1', 'customer': 7, 'cost': 718}, {'facility': 'F2', 'customer': 0, 'cost': 235}, {'facility': 'F2', 'customer': 1, 'cost': 831}, {'facility': 'F2', 'customer': 2, 'cost': 627}, {'facility': 'F2', 'customer': 3, 'cost': 763}, {'facility': 'F2', 'customer': 4, 'cost': 211}, {'facility': 'F2', 'customer': 5, 'cost': 260}, {'facility': 'F2', 'customer': 6, 'cost': 498}, {'facility': 'F2', 'customer': 7, 'cost': 373}, {'facility': 'F3', 'customer': 0, 'cost': 42}, {'facility': 'F3', 'customer': 1, 'cost': 117}, {'facility': 'F3', 'customer': 2, 'cost': 984}, {'facility': 'F3', 'customer': 3, 'cost': 943}, {'facility': 'F3', 'customer': 4, 'cost': 102}, {'facility': 'F3', 'customer': 5, 'cost': 453}, {'facility': 'F3', 'customer': 6, 'cost': 648}, {'facility': 'F3', 'customer': 7, 'cost': 921}], 'objective': 4686.0}","{'selected': ['F1', 'F3'], 'assignments': ['F3', 'F3', 'F1', 'F1', 'F3', 'F1', 'F1', 'F1']}",7,json,0
UFLP,UFLP,"I’m the one putting together the community garden plan this season: pick which plots to get ready and then place every interested family into exactly one of those prepared plots. Only plots that are prepared can take families, and a plot can host any number of families. The goal is to keep the total bill down β€” add up the setup cost for each plot that’s prepared plus the travel cost for every family to their assigned plot β€” and choose the combination that yields the smallest total. The exact plots, their setup costs, and the family travel numbers are listed below.

Here are the 4 candidate plots, the 8 families, and the setup costs 2000, 2000, 2000, 2000.
Plot F1 costs 2000 to prepare.
Plot F2 costs 2000 to prepare.
Plot F3 costs 2000 to prepare.
Plot F4 costs 2000 to prepare.
Family 1 has travel cost 369 to plot F1.
Family 2 has travel cost 941 to plot F1.
Family 3 has travel cost 524 to plot F1.
Family 4 has travel cost 324 to plot F1.
Family 5 has travel cost 597 to plot F1.
Family 6 has travel cost 415 to plot F1.
Family 7 has travel cost 427 to plot F1.
Family 8 has travel cost 876 to plot F1.
Family 1 has travel cost 69 to plot F2.
Family 2 has travel cost 730 to plot F2.
Family 3 has travel cost 135 to plot F2.
Family 4 has travel cost 162 to plot F2.
Family 5 has travel cost 714 to plot F2.
Family 6 has travel cost 835 to plot F2.
Family 7 has travel cost 193 to plot F2.
Family 8 has travel cost 495 to plot F2.
Family 1 has travel cost 622 to plot F3.
Family 2 has travel cost 625 to plot F3.
Family 3 has travel cost 798 to plot F3.
Family 4 has travel cost 829 to plot F3.
Family 5 has travel cost 696 to plot F3.
Family 6 has travel cost 416 to plot F3.
Family 7 has travel cost 98 to plot F3.
Family 8 has travel cost 993 to plot F3.
Family 1 has travel cost 59 to plot F4.
Family 2 has travel cost 124 to plot F4.
Family 3 has travel cost 619 to plot F4.
Family 4 has travel cost 247 to plot F4.
Family 5 has travel cost 26 to plot F4.
Family 6 has travel cost 9 to plot F4.
Family 7 has travel cost 881 to plot F4.
Family 8 has travel cost 866 to plot F4.
I'll use these details to pick which plots to prepare and assign every family so the total bill is as small as possible.

You can send back the final plan in a little JSON snippet like this β€” just helps me parse it easily. Something in this shape will do:

{
  ""solution"": {
    ""selected"": [<plot_to_prepare>, <plot_to_prepare>, ...],
    ""assignments"": [<assigned_plot>, <assigned_plot>, ...]
  }
}

Quick, friendly guide: ""selected"" is the list of plots you decide to get ready (those incur setup costs). ""assignments"" lists, in order, which prepared plot each family will use (so the first entry is the plot for the first family, the second for the second family, and so on). Think of this JSON as a simple form β€” a sketch of the shape I need, not the final numbers.

Please make sure all plot and family identifiers you put in there match the instance exactly β€” don’t rename them or invent new labels.  
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000, 2000, 2000], 'connection_costs': [[369, 941, 524, 324, 597, 415, 427, 876], [69, 730, 135, 162, 714, 835, 193, 495], [622, 625, 798, 829, 696, 416, 98, 993], [59, 124, 619, 247, 26, 9, 881, 866]], 'objective': 4831.0}","{'open_facilities': [3], 'assignments': [3, 3, 3, 3, 3, 3, 3, 3]}",4831.0,"{'problem_type': 'UFLP', 'num_facilities': 4, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}, {'id': 'F4', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}, {'id': 8}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 369}, {'facility': 'F1', 'customer': 2, 'cost': 941}, {'facility': 'F1', 'customer': 3, 'cost': 524}, {'facility': 'F1', 'customer': 4, 'cost': 324}, {'facility': 'F1', 'customer': 5, 'cost': 597}, {'facility': 'F1', 'customer': 6, 'cost': 415}, {'facility': 'F1', 'customer': 7, 'cost': 427}, {'facility': 'F1', 'customer': 8, 'cost': 876}, {'facility': 'F2', 'customer': 1, 'cost': 69}, {'facility': 'F2', 'customer': 2, 'cost': 730}, {'facility': 'F2', 'customer': 3, 'cost': 135}, {'facility': 'F2', 'customer': 4, 'cost': 162}, {'facility': 'F2', 'customer': 5, 'cost': 714}, {'facility': 'F2', 'customer': 6, 'cost': 835}, {'facility': 'F2', 'customer': 7, 'cost': 193}, {'facility': 'F2', 'customer': 8, 'cost': 495}, {'facility': 'F3', 'customer': 1, 'cost': 622}, {'facility': 'F3', 'customer': 2, 'cost': 625}, {'facility': 'F3', 'customer': 3, 'cost': 798}, {'facility': 'F3', 'customer': 4, 'cost': 829}, {'facility': 'F3', 'customer': 5, 'cost': 696}, {'facility': 'F3', 'customer': 6, 'cost': 416}, {'facility': 'F3', 'customer': 7, 'cost': 98}, {'facility': 'F3', 'customer': 8, 'cost': 993}, {'facility': 'F4', 'customer': 1, 'cost': 59}, {'facility': 'F4', 'customer': 2, 'cost': 124}, {'facility': 'F4', 'customer': 3, 'cost': 619}, {'facility': 'F4', 'customer': 4, 'cost': 247}, {'facility': 'F4', 'customer': 5, 'cost': 26}, {'facility': 'F4', 'customer': 6, 'cost': 9}, {'facility': 'F4', 'customer': 7, 'cost': 881}, {'facility': 'F4', 'customer': 8, 'cost': 866}], 'objective': 4831.0}","{'selected': ['F4'], 'assignments': ['F4', 'F4', 'F4', 'F4', 'F4', 'F4', 'F4', 'F4']}",8,nl,1
UFLP,UFLP,"Someone on the team needs to decide which weekend sites to launch so all students have a weekend tutoring spot. Each candidate site carries a launch price, and every student will have some commute cost depending on which site they use. The choice is twofold: pick which sites to open, then put each student at exactly one of those opened sites β€” no skipping students and no splitting them between centers. To compare choices, add up the costs to open the chosen sites plus the commuting costs for all students to their assigned sites; the plan with the smallest total bill is preferable. Sites aren’t capacity-limited, but students may only be assigned to sites that are actually launched. The concrete details are shown below.

{
  ""num_candidate_centers"": 3,
  ""num_students"": 7,
  ""centers"": [
    {
      ""center_id"": ""F1"",
      ""launch_cost"": 2000
    },
    {
      ""center_id"": ""F2"",
      ""launch_cost"": 2000
    },
    {
      ""center_id"": ""F3"",
      ""launch_cost"": 2000
    }
  ],
  ""students"": [
    {
      ""student_id"": 1
    },
    {
      ""student_id"": 2
    },
    {
      ""student_id"": 3
    },
    {
      ""student_id"": 4
    },
    {
      ""student_id"": 5
    },
    {
      ""student_id"": 6
    },
    {
      ""student_id"": 7
    }
  ],
  ""commutes"": [
    {
      ""center_id"": ""F1"",
      ""student_id"": 1,
      ""commute_cost"": 326
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 2,
      ""commute_cost"": 74
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 3,
      ""commute_cost"": 123
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 4,
      ""commute_cost"": 675
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 5,
      ""commute_cost"": 451
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 6,
      ""commute_cost"": 738
    },
    {
      ""center_id"": ""F1"",
      ""student_id"": 7,
      ""commute_cost"": 704
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 1,
      ""commute_cost"": 340
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 2,
      ""commute_cost"": 165
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 3,
      ""commute_cost"": 797
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 4,
      ""commute_cost"": 199
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 5,
      ""commute_cost"": 577
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 6,
      ""commute_cost"": 944
    },
    {
      ""center_id"": ""F2"",
      ""student_id"": 7,
      ""commute_cost"": 636
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 1,
      ""commute_cost"": 343
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 2,
      ""commute_cost"": 864
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 3,
      ""commute_cost"": 58
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 4,
      ""commute_cost"": 86
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 5,
      ""commute_cost"": 579
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 6,
      ""commute_cost"": 335
    },
    {
      ""center_id"": ""F3"",
      ""student_id"": 7,
      ""commute_cost"": 545
    }
  ]
}

Also, when you hand back the plan, it helps if you use a simple JSON shape like this so we can read it automatically β€” nothing fancy, just the bits we need:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

Think of ""selected"" as the list of weekend sites you decide to launch, and ""assignments"" as, for each student (in the same order as the input), which launched site they’ll go to. This block is just a sketch of the shape I expect, not the actual answer.

Please make sure every identifier you use matches the instance input exactly β€” don’t rename IDs or invent new ones. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[326, 74, 123, 675, 451, 738, 704], [340, 165, 797, 199, 577, 944, 636], [343, 864, 58, 86, 579, 335, 545]], 'objective': 4810.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2]}",4810.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 326}, {'facility': 'F1', 'customer': 2, 'cost': 74}, {'facility': 'F1', 'customer': 3, 'cost': 123}, {'facility': 'F1', 'customer': 4, 'cost': 675}, {'facility': 'F1', 'customer': 5, 'cost': 451}, {'facility': 'F1', 'customer': 6, 'cost': 738}, {'facility': 'F1', 'customer': 7, 'cost': 704}, {'facility': 'F2', 'customer': 1, 'cost': 340}, {'facility': 'F2', 'customer': 2, 'cost': 165}, {'facility': 'F2', 'customer': 3, 'cost': 797}, {'facility': 'F2', 'customer': 4, 'cost': 199}, {'facility': 'F2', 'customer': 5, 'cost': 577}, {'facility': 'F2', 'customer': 6, 'cost': 944}, {'facility': 'F2', 'customer': 7, 'cost': 636}, {'facility': 'F3', 'customer': 1, 'cost': 343}, {'facility': 'F3', 'customer': 2, 'cost': 864}, {'facility': 'F3', 'customer': 3, 'cost': 58}, {'facility': 'F3', 'customer': 4, 'cost': 86}, {'facility': 'F3', 'customer': 5, 'cost': 579}, {'facility': 'F3', 'customer': 6, 'cost': 335}, {'facility': 'F3', 'customer': 7, 'cost': 545}], 'objective': 4810.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",9,json,1
UFLP,UFLP,"Our team is sketching out where to place repair kiosks along the loop: there are candidate locations and a list of riders who might stop by. The job is to pick which locations to actually install and then assign every single rider to one of those installed kiosks. A good layout minimizes the overall cost β€” sum up the installation costs for the kiosks that are built plus the extra miles (or cost) riders take to reach their assigned kiosk, and prefer the plan with the smallest total. Kiosks not built are off-limits, and built kiosks can serve unlimited riders. The detailed instance information is below.

{
  ""num_kiosk_locations"": 3,
  ""num_riders"": 7,
  ""kiosks"": [
    {
      ""kiosk_id"": ""F1"",
      ""installation_cost"": 1000
    },
    {
      ""kiosk_id"": ""F2"",
      ""installation_cost"": 1000
    },
    {
      ""kiosk_id"": ""F3"",
      ""installation_cost"": 1000
    }
  ],
  ""riders"": [
    {
      ""rider_id"": ""A""
    },
    {
      ""rider_id"": ""B""
    },
    {
      ""rider_id"": ""C""
    },
    {
      ""rider_id"": ""D""
    },
    {
      ""rider_id"": ""E""
    },
    {
      ""rider_id"": ""F""
    },
    {
      ""rider_id"": ""G""
    }
  ],
  ""detour_distance_ors"": [
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""A"",
      ""detour_distance_or_cost"": 175
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""B"",
      ""detour_distance_or_cost"": 707
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""C"",
      ""detour_distance_or_cost"": 626
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""D"",
      ""detour_distance_or_cost"": 410
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""E"",
      ""detour_distance_or_cost"": 179
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""F"",
      ""detour_distance_or_cost"": 963
    },
    {
      ""kiosk_id"": ""F1"",
      ""rider_id"": ""G"",
      ""detour_distance_or_cost"": 418
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""A"",
      ""detour_distance_or_cost"": 964
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""B"",
      ""detour_distance_or_cost"": 990
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""C"",
      ""detour_distance_or_cost"": 334
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""D"",
      ""detour_distance_or_cost"": 345
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""E"",
      ""detour_distance_or_cost"": 612
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""F"",
      ""detour_distance_or_cost"": 425
    },
    {
      ""kiosk_id"": ""F2"",
      ""rider_id"": ""G"",
      ""detour_distance_or_cost"": 304
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""A"",
      ""detour_distance_or_cost"": 805
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""B"",
      ""detour_distance_or_cost"": 62
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""C"",
      ""detour_distance_or_cost"": 3
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""D"",
      ""detour_distance_or_cost"": 983
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""E"",
      ""detour_distance_or_cost"": 459
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""F"",
      ""detour_distance_or_cost"": 313
    },
    {
      ""kiosk_id"": ""F3"",
      ""rider_id"": ""G"",
      ""detour_distance_or_cost"": 819
    }
  ]
}

You can just send the plan back in a small JSON file like this so it's easy to check and parse.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<assigned_site>, <assigned_site>, ...]
  }
}

Think of it like a simple form: ""selected"" is the list of kiosk locations you choose to build, and ""assignments"" tells, for each rider (in the same order they were listed in the input), which opened kiosk they will use. This is just the expected shape β€” not the actual answer β€” so fill in the real IDs from the instance when you submit.

Please make sure to use the exact identifiers from the input β€” do not rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1000, 1000, 1000], 'connection_costs': [[175, 707, 626, 410, 179, 963, 418], [964, 990, 334, 345, 612, 425, 304], [805, 62, 3, 983, 459, 313, 819]], 'objective': 3560.0}","{'open_facilities': [0, 2], 'assignments': [0, 2, 2, 0, 0, 2, 0]}",3560.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 175}, {'facility': 'F1', 'customer': 'B', 'cost': 707}, {'facility': 'F1', 'customer': 'C', 'cost': 626}, {'facility': 'F1', 'customer': 'D', 'cost': 410}, {'facility': 'F1', 'customer': 'E', 'cost': 179}, {'facility': 'F1', 'customer': 'F', 'cost': 963}, {'facility': 'F1', 'customer': 'G', 'cost': 418}, {'facility': 'F2', 'customer': 'A', 'cost': 964}, {'facility': 'F2', 'customer': 'B', 'cost': 990}, {'facility': 'F2', 'customer': 'C', 'cost': 334}, {'facility': 'F2', 'customer': 'D', 'cost': 345}, {'facility': 'F2', 'customer': 'E', 'cost': 612}, {'facility': 'F2', 'customer': 'F', 'cost': 425}, {'facility': 'F2', 'customer': 'G', 'cost': 304}, {'facility': 'F3', 'customer': 'A', 'cost': 805}, {'facility': 'F3', 'customer': 'B', 'cost': 62}, {'facility': 'F3', 'customer': 'C', 'cost': 3}, {'facility': 'F3', 'customer': 'D', 'cost': 983}, {'facility': 'F3', 'customer': 'E', 'cost': 459}, {'facility': 'F3', 'customer': 'F', 'cost': 313}, {'facility': 'F3', 'customer': 'G', 'cost': 819}], 'objective': 3560.0}","{'selected': ['F1', 'F3'], 'assignments': ['F1', 'F3', 'F3', 'F1', 'F1', 'F3', 'F1']}",10,json,names
UFLP,UFLP,"Someone on the relief team has to decide which supply caches to put resources into and which stocked cache each household should use. The rule is simple: each household must be assigned to one stocked cache only, and they can’t go to caches we didn’t stock. What we’re trying to do, practically, is keep the total expense down β€” that total is just the stocking bills for the caches we pick plus the retrieval distance or travel cost for every household, all added together. The candidate locations, costs, and household distances are shown below.

We have 2 candidate caches, 5 households, and stocking costs 1499, 1348.
Cache F1 costs 1499 to stock.
Cache F2 costs 1348 to stock.
If we serve household A from cache F1, the travel cost is 716.
If we serve household B from cache F1, the travel cost is 683.
If we serve household C from cache F1, the travel cost is 637.
If we serve household D from cache F1, the travel cost is 519.
If we serve household E from cache F1, the travel cost is 62.
If we serve household A from cache F2, the travel cost is 332.
If we serve household B from cache F2, the travel cost is 350.
If we serve household C from cache F2, the travel cost is 394.
If we serve household D from cache F2, the travel cost is 806.
If we serve household E from cache F2, the travel cost is 884.
We’ll use these entries to choose which caches to stock and which stocked cache each household should use.

If you want to hand me the plan, just follow this simple JSON shape so I can read it automatically β€” nothing fancy, just a small form to fill in.

{
  ""solution"": {
    ""selected"": [<cache_to_stock>, <cache_to_stock>, ...],
    ""assignments"": [<chosen_stocked_cache>, <chosen_stocked_cache>, ...]
  }
}

Think of ""selected"" as the list of caches we decide to stock, and ""assignments"" as, for each household in the same order as the input, which stocked cache they will use. Super casual: ""selected"" = which caches we put supplies into; ""assignments"" = which stocked cache each household goes to.

This JSON is just a sketch of the shape I expect in the answer β€” not the actual plan itself.

Please use the exact identifiers from the instance input when you fill this in β€” no renaming and no new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1499, 1348], 'connection_costs': [[716, 683, 637, 519, 62], [332, 350, 394, 806, 884]], 'objective': 4114.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",4114.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1499}, {'id': 'F2', 'opening_cost': 1348}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 716}, {'facility': 'F1', 'customer': 'B', 'cost': 683}, {'facility': 'F1', 'customer': 'C', 'cost': 637}, {'facility': 'F1', 'customer': 'D', 'cost': 519}, {'facility': 'F1', 'customer': 'E', 'cost': 62}, {'facility': 'F2', 'customer': 'A', 'cost': 332}, {'facility': 'F2', 'customer': 'B', 'cost': 350}, {'facility': 'F2', 'customer': 'C', 'cost': 394}, {'facility': 'F2', 'customer': 'D', 'cost': 806}, {'facility': 'F2', 'customer': 'E', 'cost': 884}], 'objective': 4114.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",11,nl,names
UFLP,UFLP,"At the festival gates the problem is practical: decide which vendor stalls to lease and assign every artisan to one leased stall. Leasing a stall costs money, only leased stalls can be used, and each artisan needs a single stall (no doubles, no omissions). Festival-goers will head to a single vendor, and the final tally is the rent paid for the leased stalls plus the total walking distance of all attendees to their vendor β€” the task is to make that tally as small as it can be. Concrete data follows below.

{
  ""num_candidate_stalls"": 3,
  ""num_attendees"": 7,
  ""stalls"": [
    {
      ""stall_id"": ""F1"",
      ""stall_rent"": 9182
    },
    {
      ""stall_id"": ""F2"",
      ""stall_rent"": 1373
    },
    {
      ""stall_id"": ""F3"",
      ""stall_rent"": 4548
    }
  ],
  ""attendees"": [
    {
      ""attendee_id"": 0
    },
    {
      ""attendee_id"": 1
    },
    {
      ""attendee_id"": 2
    },
    {
      ""attendee_id"": 3
    },
    {
      ""attendee_id"": 4
    },
    {
      ""attendee_id"": 5
    },
    {
      ""attendee_id"": 6
    }
  ],
  ""walking_distances"": [
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 0,
      ""walking_distance_cost"": 689
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 1,
      ""walking_distance_cost"": 742
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 2,
      ""walking_distance_cost"": 898
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 3,
      ""walking_distance_cost"": 681
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 4,
      ""walking_distance_cost"": 661
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 5,
      ""walking_distance_cost"": 438
    },
    {
      ""stall_id"": ""F1"",
      ""attendee_id"": 6,
      ""walking_distance_cost"": 210
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 0,
      ""walking_distance_cost"": 465
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 1,
      ""walking_distance_cost"": 317
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 2,
      ""walking_distance_cost"": 669
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 3,
      ""walking_distance_cost"": 727
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 4,
      ""walking_distance_cost"": 907
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 5,
      ""walking_distance_cost"": 973
    },
    {
      ""stall_id"": ""F2"",
      ""attendee_id"": 6,
      ""walking_distance_cost"": 206
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 0,
      ""walking_distance_cost"": 1
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 1,
      ""walking_distance_cost"": 280
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 2,
      ""walking_distance_cost"": 6
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 3,
      ""walking_distance_cost"": 324
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 4,
      ""walking_distance_cost"": 131
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 5,
      ""walking_distance_cost"": 698
    },
    {
      ""stall_id"": ""F3"",
      ""attendee_id"": 6,
      ""walking_distance_cost"": 691
    }
  ]
}

Also, just so we're on the same page, please return your choice in this little JSON layout β€” keeps things tidy and machine-friendly:

{
  ""solution"": {
    ""selected"": [<stall_to_lease>, <stall_to_lease>, ...],
    ""assignments"": [<leased_stall_for_artisan>, <leased_stall_for_artisan>, ...]
  }
}

""selected"" is the list of stalls you decide to lease. ""assignments"" is a list with one entry per artisan saying which leased stall they will use. Think of it like filling out a simple form: pick the stalls, then point each artisan to one of the picked stalls.

This JSON is just the outline of the shape I expect β€” not the actual answer. Please make sure every identifier you put in here matches exactly the identifiers in the instance input β€” don't rename them and don't invent new ones.

- for example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [9182, 1373, 4548], 'connection_costs': [[689, 742, 898, 681, 661, 438, 210], [465, 317, 669, 727, 907, 973, 206], [1, 280, 6, 324, 131, 698, 691]], 'objective': 5637.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1, 1]}",5637.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 9182}, {'id': 'F2', 'opening_cost': 1373}, {'id': 'F3', 'opening_cost': 4548}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 689}, {'facility': 'F1', 'customer': 1, 'cost': 742}, {'facility': 'F1', 'customer': 2, 'cost': 898}, {'facility': 'F1', 'customer': 3, 'cost': 681}, {'facility': 'F1', 'customer': 4, 'cost': 661}, {'facility': 'F1', 'customer': 5, 'cost': 438}, {'facility': 'F1', 'customer': 6, 'cost': 210}, {'facility': 'F2', 'customer': 0, 'cost': 465}, {'facility': 'F2', 'customer': 1, 'cost': 317}, {'facility': 'F2', 'customer': 2, 'cost': 669}, {'facility': 'F2', 'customer': 3, 'cost': 727}, {'facility': 'F2', 'customer': 4, 'cost': 907}, {'facility': 'F2', 'customer': 5, 'cost': 973}, {'facility': 'F2', 'customer': 6, 'cost': 206}, {'facility': 'F3', 'customer': 0, 'cost': 1}, {'facility': 'F3', 'customer': 1, 'cost': 280}, {'facility': 'F3', 'customer': 2, 'cost': 6}, {'facility': 'F3', 'customer': 3, 'cost': 324}, {'facility': 'F3', 'customer': 4, 'cost': 131}, {'facility': 'F3', 'customer': 5, 'cost': 698}, {'facility': 'F3', 'customer': 6, 'cost': 691}], 'objective': 5637.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",12,json,0
UFLP,UFLP,"Someone in charge needs to figure out which remote work pods to put up on campus and how to seat the freelancers. The rule is every freelancer gets assigned to one and only one of the pods that were actually installed β€” no double-assignments and no sending anyone to a non-existent pod. The best setup is the one that keeps the total cost down, where that total is the sum of all pod installation charges plus all freelancers’ commuting inconvenience to their assigned pod. The specific instance details follow below.

{
  ""num_candidate_pods"": 2,
  ""num_freelancers"": 5,
  ""pods"": [
    {
      ""pod_id"": ""F1"",
      ""pod_setup_cost"": 1361
    },
    {
      ""pod_id"": ""F2"",
      ""pod_setup_cost"": 1833
    }
  ],
  ""freelancers"": [
    {
      ""freelancer_id"": 0
    },
    {
      ""freelancer_id"": 1
    },
    {
      ""freelancer_id"": 2
    },
    {
      ""freelancer_id"": 3
    },
    {
      ""freelancer_id"": 4
    }
  ],
  ""commute_inconveniences"": [
    {
      ""pod_id"": ""F1"",
      ""freelancer_id"": 0,
      ""commute_inconvenience_cost"": 900
    },
    {
      ""pod_id"": ""F1"",
      ""freelancer_id"": 1,
      ""commute_inconvenience_cost"": 420
    },
    {
      ""pod_id"": ""F1"",
      ""freelancer_id"": 2,
      ""commute_inconvenience_cost"": 851
    },
    {
      ""pod_id"": ""F1"",
      ""freelancer_id"": 3,
      ""commute_inconvenience_cost"": 528
    },
    {
      ""pod_id"": ""F1"",
      ""freelancer_id"": 4,
      ""commute_inconvenience_cost"": 892
    },
    {
      ""pod_id"": ""F2"",
      ""freelancer_id"": 0,
      ""commute_inconvenience_cost"": 364
    },
    {
      ""pod_id"": ""F2"",
      ""freelancer_id"": 1,
      ""commute_inconvenience_cost"": 81
    },
    {
      ""pod_id"": ""F2"",
      ""freelancer_id"": 2,
      ""commute_inconvenience_cost"": 709
    },
    {
      ""pod_id"": ""F2"",
      ""freelancer_id"": 3,
      ""commute_inconvenience_cost"": 840
    },
    {
      ""pod_id"": ""F2"",
      ""freelancer_id"": 4,
      ""commute_inconvenience_cost"": 186
    }
  ]
}

So, when you send the answer back, a little JSON sketch like this is perfect β€” just showing which pods you actually install and which pod each freelancer is sent to:

{
  ""solution"": {
    ""selected"": [<pod_to_install>, <pod_to_install>, ...],
    ""assignments"": [<assigned_pod>, <assigned_pod>, ...]
  }
}

""selected"" is where you list the pods you put up (one entry per pod). ""assignments"" lists, in order, the pod each freelancer uses β€” one entry per freelancer. Super informal: think of ""selected"" as the installations box and ""assignments"" as the seating map. This is only the shape I expect, not the final choices.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1361, 1833], 'connection_costs': [[900, 420, 851, 528, 892], [364, 81, 709, 840, 186]], 'objective': 4013.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",4013.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1361}, {'id': 'F2', 'opening_cost': 1833}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 900}, {'facility': 'F1', 'customer': 1, 'cost': 420}, {'facility': 'F1', 'customer': 2, 'cost': 851}, {'facility': 'F1', 'customer': 3, 'cost': 528}, {'facility': 'F1', 'customer': 4, 'cost': 892}, {'facility': 'F2', 'customer': 0, 'cost': 364}, {'facility': 'F2', 'customer': 1, 'cost': 81}, {'facility': 'F2', 'customer': 2, 'cost': 709}, {'facility': 'F2', 'customer': 3, 'cost': 840}, {'facility': 'F2', 'customer': 4, 'cost': 186}], 'objective': 4013.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",13,json,0
UFLP,UFLP,"In our district the administrator must choose which temporary classroom trailers to bring in and then put every after-school student into one of the trailers that arrived. The decision is to select which trailers to bring and then assign each student to exactly one of those brought trailers (students can’t go to trailers that weren’t brought, and nobody gets left without an assignment). What makes one plan preferable is the total cost you end up with β€” add together the cost to bring the chosen trailers plus the travel-time cost for every student getting to their assigned trailer; the plan with the lowest combined total is best. Trailers can hold any number of students, and the concrete details will be shown below.

{
  ""num_candidate_trailers"": 2,
  ""num_students"": 5,
  ""trailers"": [
    {
      ""trailer_id"": ""F1"",
      ""trailer_bring_cost"": 1731
    },
    {
      ""trailer_id"": ""F2"",
      ""trailer_bring_cost"": 1397
    }
  ],
  ""students"": [
    {
      ""student_id"": 1
    },
    {
      ""student_id"": 2
    },
    {
      ""student_id"": 3
    },
    {
      ""student_id"": 4
    },
    {
      ""student_id"": 5
    }
  ],
  ""student_travel_times"": [
    {
      ""trailer_id"": ""F1"",
      ""student_id"": 1,
      ""student_travel_time_cost"": 571
    },
    {
      ""trailer_id"": ""F1"",
      ""student_id"": 2,
      ""student_travel_time_cost"": 761
    },
    {
      ""trailer_id"": ""F1"",
      ""student_id"": 3,
      ""student_travel_time_cost"": 359
    },
    {
      ""trailer_id"": ""F1"",
      ""student_id"": 4,
      ""student_travel_time_cost"": 299
    },
    {
      ""trailer_id"": ""F1"",
      ""student_id"": 5,
      ""student_travel_time_cost"": 283
    },
    {
      ""trailer_id"": ""F2"",
      ""student_id"": 1,
      ""student_travel_time_cost"": 817
    },
    {
      ""trailer_id"": ""F2"",
      ""student_id"": 2,
      ""student_travel_time_cost"": 449
    },
    {
      ""trailer_id"": ""F2"",
      ""student_id"": 3,
      ""student_travel_time_cost"": 121
    },
    {
      ""trailer_id"": ""F2"",
      ""student_id"": 4,
      ""student_travel_time_cost"": 299
    },
    {
      ""trailer_id"": ""F2"",
      ""student_id"": 5,
      ""student_travel_time_cost"": 695
    }
  ]
}

If you want to send back a plan, just use this simple JSON shape so I can read it easily β€” nothing fancy, just a small form that says which trailers you brought and which trailer each student goes to.

{
  ""solution"": {
    ""selected"": [""<trailer_to_bring>"", ""<trailer_to_bring>"", ...],
    ""assignments"": [""<assigned_trailer>"", ""<assigned_trailer>"", ...]
  }
}

Think of ""selected"" as the list of trailers you decided to bring in, and ""assignments"" as a student-by-student list saying which of the brought trailers each student will go to (in the same student order as the instance). Super casual β€” it's just a sketch of the shape I expect, not the actual answer.

Please make sure you use the exact identifiers from the instance input when you fill this in β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [1731, 1397], 'connection_costs': [[571, 761, 359, 299, 283], [817, 449, 121, 299, 695]], 'objective': 3778.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",3778.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1731}, {'id': 'F2', 'opening_cost': 1397}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 571}, {'facility': 'F1', 'customer': 2, 'cost': 761}, {'facility': 'F1', 'customer': 3, 'cost': 359}, {'facility': 'F1', 'customer': 4, 'cost': 299}, {'facility': 'F1', 'customer': 5, 'cost': 283}, {'facility': 'F2', 'customer': 1, 'cost': 817}, {'facility': 'F2', 'customer': 2, 'cost': 449}, {'facility': 'F2', 'customer': 3, 'cost': 121}, {'facility': 'F2', 'customer': 4, 'cost': 299}, {'facility': 'F2', 'customer': 5, 'cost': 695}], 'objective': 3778.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",14,json,1
UFLP,UFLP,"Around town the recycling squad is planning which drop-off sites to maintain and how to route every block to a single maintained site. Closed sites won’t be available, blocks can’t split their pickups, and maintained sites can serve unlimited blocks. What makes one plan better is the total sum: all the maintenance fees for the kept sites plus the distances people from each block must travel to their assigned site β€” the lower that combined sum, the better the plan. The specific instance details follow below.

{
  ""total_dropoff_sites"": 3,
  ""total_blocks"": 6,
  ""sites"": [
    {
      ""site_id"": ""F1"",
      ""maintenance_fee"": 2000
    },
    {
      ""site_id"": ""F2"",
      ""maintenance_fee"": 2000
    },
    {
      ""site_id"": ""F3"",
      ""maintenance_fee"": 2000
    }
  ],
  ""blocks"": [
    {
      ""block_id"": ""A""
    },
    {
      ""block_id"": ""B""
    },
    {
      ""block_id"": ""C""
    },
    {
      ""block_id"": ""D""
    },
    {
      ""block_id"": ""E""
    },
    {
      ""block_id"": ""F""
    }
  ],
  ""walking_distances"": [
    {
      ""site_id"": ""F1"",
      ""block_id"": ""A"",
      ""walking_distance"": 817
    },
    {
      ""site_id"": ""F1"",
      ""block_id"": ""B"",
      ""walking_distance"": 926
    },
    {
      ""site_id"": ""F1"",
      ""block_id"": ""C"",
      ""walking_distance"": 361
    },
    {
      ""site_id"": ""F1"",
      ""block_id"": ""D"",
      ""walking_distance"": 608
    },
    {
      ""site_id"": ""F1"",
      ""block_id"": ""E"",
      ""walking_distance"": 924
    },
    {
      ""site_id"": ""F1"",
      ""block_id"": ""F"",
      ""walking_distance"": 783
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""A"",
      ""walking_distance"": 191
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""B"",
      ""walking_distance"": 371
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""C"",
      ""walking_distance"": 200
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""D"",
      ""walking_distance"": 4
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""E"",
      ""walking_distance"": 855
    },
    {
      ""site_id"": ""F2"",
      ""block_id"": ""F"",
      ""walking_distance"": 463
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""A"",
      ""walking_distance"": 86
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""B"",
      ""walking_distance"": 563
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""C"",
      ""walking_distance"": 146
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""D"",
      ""walking_distance"": 499
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""E"",
      ""walking_distance"": 814
    },
    {
      ""site_id"": ""F3"",
      ""block_id"": ""F"",
      ""walking_distance"": 648
    }
  ]
}

Also, when you send your plan back, please stick to this simple JSON layout so it's easy to check automatically.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

Think of it like a short form: ""selected"" is the list of drop-off sites you decide to keep maintained, and ""assignments"" is, for each block in the same order as the instance, which maintained site that block will use. This JSON is just a sketch of the shape I expect β€” it’s not the real answer itself.

Please make sure every identifier you use matches exactly what’s in the instance input β€” don’t rename or invent labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[817, 926, 361, 608, 924, 783], [191, 371, 200, 4, 855, 463], [86, 563, 146, 499, 814, 648]], 'objective': 4084.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4084.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 817}, {'facility': 'F1', 'customer': 'B', 'cost': 926}, {'facility': 'F1', 'customer': 'C', 'cost': 361}, {'facility': 'F1', 'customer': 'D', 'cost': 608}, {'facility': 'F1', 'customer': 'E', 'cost': 924}, {'facility': 'F1', 'customer': 'F', 'cost': 783}, {'facility': 'F2', 'customer': 'A', 'cost': 191}, {'facility': 'F2', 'customer': 'B', 'cost': 371}, {'facility': 'F2', 'customer': 'C', 'cost': 200}, {'facility': 'F2', 'customer': 'D', 'cost': 4}, {'facility': 'F2', 'customer': 'E', 'cost': 855}, {'facility': 'F2', 'customer': 'F', 'cost': 463}, {'facility': 'F3', 'customer': 'A', 'cost': 86}, {'facility': 'F3', 'customer': 'B', 'cost': 563}, {'facility': 'F3', 'customer': 'C', 'cost': 146}, {'facility': 'F3', 'customer': 'D', 'cost': 499}, {'facility': 'F3', 'customer': 'E', 'cost': 814}, {'facility': 'F3', 'customer': 'F', 'cost': 648}], 'objective': 4084.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",15,json,names
UFLP,UFLP,"Someone managing the farm markets needs to pick which roadside produce stands will operate this season and assign each regular buyer to a single open stand. Better choices are those that cut the total expense, calculated by adding the operating costs for all stands left open plus the travel cost for each customer to their chosen stand. Each customer gets exactly one operating stand and nobody visits a closed one; stands aren’t capped on how many people they can serve. The exact numbers are shown below.

# num_candidate_stands=3
# num_regular_customers=6
# STANDS
stand_id,stand_opening_cost
F1,2000
F2,2000
F3,2000
# BUYERS
buyer_id
A
B
C
D
E
F
# TRAVELS
stand_id,buyer_id,travel_cost
F1,A,508
F1,B,378
F1,C,287
F1,D,706
F1,E,544
F1,F,127
F2,A,461
F2,B,368
F2,C,654
F2,D,341
F2,E,205
F2,F,620
F3,A,363
F3,B,957
F3,C,148
F3,D,435
F3,E,702
F3,F,794

If you want to send me the plan in a tidy, machine-friendly way, just use this simple JSON shape below β€” it shows which stands to open and which open stand each buyer will go to.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is the list of stands you'll keep operating this season. ""assignments"" says, for each regular buyer (in the same order as the instance), which open stand they go to. Think of it like filling out a short form: pick the open stands, then list each buyer's chosen stand. This is just a sketch of the shape I need, not the actual filled-in answer.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new ones.  
Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[508, 378, 287, 706, 544, 127], [461, 368, 654, 341, 205, 620], [363, 957, 148, 435, 702, 794]], 'objective': 4550.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",4550.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 508}, {'facility': 'F1', 'customer': 'B', 'cost': 378}, {'facility': 'F1', 'customer': 'C', 'cost': 287}, {'facility': 'F1', 'customer': 'D', 'cost': 706}, {'facility': 'F1', 'customer': 'E', 'cost': 544}, {'facility': 'F1', 'customer': 'F', 'cost': 127}, {'facility': 'F2', 'customer': 'A', 'cost': 461}, {'facility': 'F2', 'customer': 'B', 'cost': 368}, {'facility': 'F2', 'customer': 'C', 'cost': 654}, {'facility': 'F2', 'customer': 'D', 'cost': 341}, {'facility': 'F2', 'customer': 'E', 'cost': 205}, {'facility': 'F2', 'customer': 'F', 'cost': 620}, {'facility': 'F3', 'customer': 'A', 'cost': 363}, {'facility': 'F3', 'customer': 'B', 'cost': 957}, {'facility': 'F3', 'customer': 'C', 'cost': 148}, {'facility': 'F3', 'customer': 'D', 'cost': 435}, {'facility': 'F3', 'customer': 'E', 'cost': 702}, {'facility': 'F3', 'customer': 'F', 'cost': 794}], 'objective': 4550.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",16,csv,names
UFLP,UFLP,"At the conservatory the director must decide which piano practice rooms to operate and then send every musician to one of those open rooms. The smart trade-off is obvious in plain terms: keep an eye on the sum of the room upkeep bills plus the walking time for all musicians, and choose the setup with the least total. Each musician is assigned to exactly one available room β€” closed rooms aren’t options β€” and open rooms can host multiple musicians without limit. The specific room costs and walking distances are listed below.

There are 3 candidate rooms, 6 musicians, and the room upkeep costs are 2000, 2000, 2000.
Room F1 has upkeep cost 2000.
Room F2 has upkeep cost 2000.
Room F3 has upkeep cost 2000.
Musician 0 incurs walking time 875 to room F1.
Musician 1 incurs walking time 51 to room F1.
Musician 2 incurs walking time 711 to room F1.
Musician 3 incurs walking time 331 to room F1.
Musician 4 incurs walking time 38 to room F1.
Musician 5 incurs walking time 362 to room F1.
Musician 0 incurs walking time 859 to room F2.
Musician 1 incurs walking time 625 to room F2.
Musician 2 incurs walking time 127 to room F2.
Musician 3 incurs walking time 547 to room F2.
Musician 4 incurs walking time 991 to room F2.
Musician 5 incurs walking time 255 to room F2.
Musician 0 incurs walking time 520 to room F3.
Musician 1 incurs walking time 793 to room F3.
Musician 2 incurs walking time 623 to room F3.
Musician 3 incurs walking time 331 to room F3.
Musician 4 incurs walking time 353 to room F3.
Musician 5 incurs walking time 241 to room F3.
The director will choose the open rooms and assignments that minimize total room upkeep plus walking time.

You can just give the plan in a tiny JSON shape like this β€” it makes it easy to check which rooms get opened and where each musician is sent:

{
  ""solution"": {
    ""selected"": [<room_to_open>, <room_to_open>, ...],
    ""assignments"": [<chosen_open_room>, <chosen_open_room>, ...]
  }
}

""selected"" is the list of practice rooms you decide to operate. ""assignments"" lists, for every musician in order, which open room they go to. Think of it like filling out a simple form: pick the rooms you’ll run, then list each musician’s room.

This is just a sketch of the shape I expect, not the actual answer. Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[875, 51, 711, 331, 38, 362], [859, 625, 127, 547, 991, 255], [520, 793, 623, 331, 353, 241]], 'objective': 4368.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",4368.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 875}, {'facility': 'F1', 'customer': 1, 'cost': 51}, {'facility': 'F1', 'customer': 2, 'cost': 711}, {'facility': 'F1', 'customer': 3, 'cost': 331}, {'facility': 'F1', 'customer': 4, 'cost': 38}, {'facility': 'F1', 'customer': 5, 'cost': 362}, {'facility': 'F2', 'customer': 0, 'cost': 859}, {'facility': 'F2', 'customer': 1, 'cost': 625}, {'facility': 'F2', 'customer': 2, 'cost': 127}, {'facility': 'F2', 'customer': 3, 'cost': 547}, {'facility': 'F2', 'customer': 4, 'cost': 991}, {'facility': 'F2', 'customer': 5, 'cost': 255}, {'facility': 'F3', 'customer': 0, 'cost': 520}, {'facility': 'F3', 'customer': 1, 'cost': 793}, {'facility': 'F3', 'customer': 2, 'cost': 623}, {'facility': 'F3', 'customer': 3, 'cost': 331}, {'facility': 'F3', 'customer': 4, 'cost': 353}, {'facility': 'F3', 'customer': 5, 'cost': 241}], 'objective': 4368.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",17,nl,0
UFLP,UFLP,"We’re organizing a citywide donation drive and need to pick which potential drop-off boxes to install and then decide which installed box each donor will go to. Each possible box costs money to place, and each donor incurs some detour to reach the box they’re assigned to, so the trick is to keep the total cost down by adding all the installation fees and every donor’s extra travel; a lower total means a better rollout. Also, every donor must be routed to one single box that’s actually been installed β€” no duplicates, no unassigned donors, and nobody should be told to use a box that wasn’t put out. The specific locations, costs, and donor positions are listed below.

# total_candidate_boxes=4
# total_donors=8
# BOXS
box_id,installation_fee
F1,1530
F2,1780
F3,1433
F4,1638
# DONORS
donor_id
A
B
C
D
E
F
G
H
# DONOR_DETOURS
box_id,donor_id,donor_detour_cost
F1,A,691
F1,B,899
F1,C,993
F1,D,62
F1,E,635
F1,F,265
F1,G,216
F1,H,628
F2,A,693
F2,B,866
F2,C,729
F2,D,426
F2,E,470
F2,F,435
F2,G,455
F2,H,721
F3,A,499
F3,B,376
F3,C,481
F3,D,290
F3,E,435
F3,F,966
F3,G,302
F3,H,503
F4,A,908
F4,B,933
F4,C,294
F4,D,328
F4,E,863
F4,F,224
F4,G,693
F4,H,312

Oh, and one more practical thing β€” when you send the plan back, a tiny JSON sketch like the one below is perfect for me. It just lists which boxes we actually install and then, for each donor, which installed box they should go to.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_dropbox>, <chosen_dropbox>, ...]
  }
}

""selected"" is the list of drop-off box locations you decide to install. ""assignments"" is a list with one entry per donor saying which installed box they should use. Super casual: think of ""selected"" as the checklist of boxes we put out, and ""assignments"" as the little directions we hand each donor. This is just the expected shape β€” not the final plan itself.

Please use the exact identifiers from the instance input when filling those lists β€” do not rename identifiers or invent new ones.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1530, 1780, 1433, 1638], 'connection_costs': [[691, 899, 993, 62, 635, 265, 216, 628], [693, 866, 729, 426, 470, 435, 455, 721], [499, 376, 481, 290, 435, 966, 302, 503], [908, 933, 294, 328, 863, 224, 693, 312]], 'objective': 5285.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2, 2]}",5285.0,"{'problem_type': 'UFLP', 'num_facilities': 4, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 1530}, {'id': 'F2', 'opening_cost': 1780}, {'id': 'F3', 'opening_cost': 1433}, {'id': 'F4', 'opening_cost': 1638}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}, {'id': 'H'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 691}, {'facility': 'F1', 'customer': 'B', 'cost': 899}, {'facility': 'F1', 'customer': 'C', 'cost': 993}, {'facility': 'F1', 'customer': 'D', 'cost': 62}, {'facility': 'F1', 'customer': 'E', 'cost': 635}, {'facility': 'F1', 'customer': 'F', 'cost': 265}, {'facility': 'F1', 'customer': 'G', 'cost': 216}, {'facility': 'F1', 'customer': 'H', 'cost': 628}, {'facility': 'F2', 'customer': 'A', 'cost': 693}, {'facility': 'F2', 'customer': 'B', 'cost': 866}, {'facility': 'F2', 'customer': 'C', 'cost': 729}, {'facility': 'F2', 'customer': 'D', 'cost': 426}, {'facility': 'F2', 'customer': 'E', 'cost': 470}, {'facility': 'F2', 'customer': 'F', 'cost': 435}, {'facility': 'F2', 'customer': 'G', 'cost': 455}, {'facility': 'F2', 'customer': 'H', 'cost': 721}, {'facility': 'F3', 'customer': 'A', 'cost': 499}, {'facility': 'F3', 'customer': 'B', 'cost': 376}, {'facility': 'F3', 'customer': 'C', 'cost': 481}, {'facility': 'F3', 'customer': 'D', 'cost': 290}, {'facility': 'F3', 'customer': 'E', 'cost': 435}, {'facility': 'F3', 'customer': 'F', 'cost': 966}, {'facility': 'F3', 'customer': 'G', 'cost': 302}, {'facility': 'F3', 'customer': 'H', 'cost': 503}, {'facility': 'F4', 'customer': 'A', 'cost': 908}, {'facility': 'F4', 'customer': 'B', 'cost': 933}, {'facility': 'F4', 'customer': 'C', 'cost': 294}, {'facility': 'F4', 'customer': 'D', 'cost': 328}, {'facility': 'F4', 'customer': 'E', 'cost': 863}, {'facility': 'F4', 'customer': 'F', 'cost': 224}, {'facility': 'F4', 'customer': 'G', 'cost': 693}, {'facility': 'F4', 'customer': 'H', 'cost': 312}], 'objective': 5285.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",18,csv,names
UFLP,UFLP,"Recently the social services office was tasked with picking which evening soup kitchens to fund and assigning every nearby person in need to one of the funded kitchens. The rule is clear: only funded kitchens can receive people, everyone must be sent to one and only one kitchen, and any funded kitchen can serve as many people as needed. What they want is the cheapest overall arrangement β€” total up the funding commitments plus each person’s travel cost to their assigned kitchen, and keep that total as low as possible. Detailed numbers and locations are shown below.

# num_kitchens=2
# num_people_in_need=5
# KITCHENS
kitchen_id,kitchen_funding_cost
F1,2139
F2,9278
# PERSONS
person_id
A
B
C
D
E
# TRAVELS
kitchen_id,person_id,travel_cost
F1,A,429
F1,B,393
F1,C,476
F1,D,235
F1,E,750
F2,A,826
F2,B,514
F2,C,844
F2,D,812
F2,E,775

One quick thing before you go: it'd be great if you could return the final choice in a tiny JSON form so it's easy to read. Here's the relaxed shape I'm expecting β€” just a small sketch showing which kitchens we fund and which funded kitchen each person is sent to.

{
  ""solution"": {
    ""selected"": [<kitchen_to_fund>, <kitchen_to_fund>, ...],
    ""assignments"": [<assigned_kitchen>, <assigned_kitchen>, ...]
  }
}

Think of it like a simple form: ""selected"" is the list of soup kitchens we decide to fund, and ""assignments"" lists, in the same order as the people in the instance, the funded kitchen each person is assigned to. This is only the expected shape β€” not the actual answer itself.

Please make sure all identifiers are used exactly as they appear in the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2139, 9278], 'connection_costs': [[429, 393, 476, 235, 750], [826, 514, 844, 812, 775]], 'objective': 4422.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",4422.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2139}, {'id': 'F2', 'opening_cost': 9278}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 429}, {'facility': 'F1', 'customer': 'B', 'cost': 393}, {'facility': 'F1', 'customer': 'C', 'cost': 476}, {'facility': 'F1', 'customer': 'D', 'cost': 235}, {'facility': 'F1', 'customer': 'E', 'cost': 750}, {'facility': 'F2', 'customer': 'A', 'cost': 826}, {'facility': 'F2', 'customer': 'B', 'cost': 514}, {'facility': 'F2', 'customer': 'C', 'cost': 844}, {'facility': 'F2', 'customer': 'D', 'cost': 812}, {'facility': 'F2', 'customer': 'E', 'cost': 775}], 'objective': 4422.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",19,csv,names
UFLP,UFLP,"Someone in charge of the building’s network has to pick which of the small servers around the floor to power, then bind each device to a single powered server. Each server has a startup cost and each device-server pair has a delay cost; the winning setup is simply the one with the lowest combined total of server power costs plus all the devices’ latency penalties. Every device must be attached to exactly one turned-on server, and the real numbers and map follow below.

They must choose among 3 candidate servers to power for 6 devices, with server startup costs 2000, 2000, 2000.
Candidate server F1 can be powered at startup cost 2000.
Candidate server F2 can be powered at startup cost 2000.
Candidate server F3 can be powered at startup cost 2000.
If device 0 is attached to server F1, it incurs latency cost 560.
If device 1 is attached to server F1, it incurs latency cost 625.
If device 2 is attached to server F1, it incurs latency cost 469.
If device 3 is attached to server F1, it incurs latency cost 353.
If device 4 is attached to server F1, it incurs latency cost 749.
If device 5 is attached to server F1, it incurs latency cost 692.
If device 0 is attached to server F2, it incurs latency cost 256.
If device 1 is attached to server F2, it incurs latency cost 38.
If device 2 is attached to server F2, it incurs latency cost 864.
If device 3 is attached to server F2, it incurs latency cost 70.
If device 4 is attached to server F2, it incurs latency cost 654.
If device 5 is attached to server F2, it incurs latency cost 344.
If device 0 is attached to server F3, it incurs latency cost 599.
If device 1 is attached to server F3, it incurs latency cost 889.
If device 2 is attached to server F3, it incurs latency cost 674.
If device 3 is attached to server F3, it incurs latency cost 667.
If device 4 is attached to server F3, it incurs latency cost 98.
If device 5 is attached to server F3, it incurs latency cost 598.
They will pick the powered servers and device attachments that minimize the total of the listed startup costs and latency penalties.

You can just hand me the answer in a tiny JSON form like this β€” nothing fancy, just which sites you flip on and then, for every device in order, which powered site it uses:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is the short list of servers (sites) you decide to power up. ""assignments"" lists, in the same order as the devices were given in the instance, the site each device is bound to. Think of it like filling out a simple form: first pick the open sites, then say where each device goes. This JSON is just the shape I need β€” not the real answer.

Please make sure to use the exact identifiers from the instance input β€” don't rename or invent labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[560, 625, 469, 353, 749, 692], [256, 38, 864, 70, 654, 344], [599, 889, 674, 667, 98, 598]], 'objective': 4226.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4226.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 560}, {'facility': 'F1', 'customer': 1, 'cost': 625}, {'facility': 'F1', 'customer': 2, 'cost': 469}, {'facility': 'F1', 'customer': 3, 'cost': 353}, {'facility': 'F1', 'customer': 4, 'cost': 749}, {'facility': 'F1', 'customer': 5, 'cost': 692}, {'facility': 'F2', 'customer': 0, 'cost': 256}, {'facility': 'F2', 'customer': 1, 'cost': 38}, {'facility': 'F2', 'customer': 2, 'cost': 864}, {'facility': 'F2', 'customer': 3, 'cost': 70}, {'facility': 'F2', 'customer': 4, 'cost': 654}, {'facility': 'F2', 'customer': 5, 'cost': 344}, {'facility': 'F3', 'customer': 0, 'cost': 599}, {'facility': 'F3', 'customer': 1, 'cost': 889}, {'facility': 'F3', 'customer': 2, 'cost': 674}, {'facility': 'F3', 'customer': 3, 'cost': 667}, {'facility': 'F3', 'customer': 4, 'cost': 98}, {'facility': 'F3', 'customer': 5, 'cost': 598}], 'objective': 4226.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",20,nl,0
UFLP,UFLP,"Out on the road the charging crew chooses which stations to fire up and which active station each customer will visit. Switching on a station costs money, and sending a customer there causes a detour cost β€” every customer needs exactly one station and can’t be split between stations. The smartest choice is the one that yields the lowest total bill: total activation costs plus total customer detour costs, and the scenario’s exact details are shown below.

There are 3 stations and 7 users in this instance.

**Stations**
| station_id | activation_cost |
|---|---|
| F1 | 1000 |
| F2 | 1000 |
| F3 | 1000 |

**Users**
| user_id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |

**Detour Cost**
| station_id | user_id | detour_cost |
|---|---|---|
| F1 | 1 | 513 |
| F1 | 2 | 435 |
| F1 | 3 | 467 |
| F1 | 4 | 305 |
| F1 | 5 | 376 |
| F1 | 6 | 152 |
| F1 | 7 | 427 |
| F2 | 1 | 121 |
| F2 | 2 | 448 |
| F2 | 3 | 114 |
| F2 | 4 | 325 |
| F2 | 5 | 583 |
| F2 | 6 | 307 |
| F2 | 7 | 910 |
| F3 | 1 | 764 |
| F3 | 2 | 746 |
| F3 | 3 | 284 |
| F3 | 4 | 44 |
| F3 | 5 | 40 |
| F3 | 6 | 443 |
| F3 | 7 | 140 |

Also, to keep things tidy, please return your pick in this simple JSON shape β€” just a quick sketch of the form I’ll read. It should look like this:

{
  ""solution"": {
    ""selected"": [<station_to_open>, <station_to_open>, ...],
    ""assignments"": [<chosen_open_station>, <chosen_open_station>, ...]
  }
}

""selected"" is the list of stations the crew decides to switch on. ""assignments"" lists, for each customer in the input order, which opened station that customer will visit. Think of it like a filled-in form: which stations are active, and for each customer where they go.

This JSON is just the expected shape β€” not the actual solution itself. And one more important note: use the exact identifiers from the instance input, do not rename them or invent new labels. Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'opening_costs': [1000, 1000, 1000], 'connection_costs': [[513, 435, 467, 305, 376, 152, 427], [121, 448, 114, 325, 583, 307, 910], [764, 746, 284, 44, 40, 443, 140]], 'objective': 3214.0}","{'open_facilities': [1, 2], 'assignments': [1, 1, 1, 2, 2, 1, 2]}",3214.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 513}, {'facility': 'F1', 'customer': 2, 'cost': 435}, {'facility': 'F1', 'customer': 3, 'cost': 467}, {'facility': 'F1', 'customer': 4, 'cost': 305}, {'facility': 'F1', 'customer': 5, 'cost': 376}, {'facility': 'F1', 'customer': 6, 'cost': 152}, {'facility': 'F1', 'customer': 7, 'cost': 427}, {'facility': 'F2', 'customer': 1, 'cost': 121}, {'facility': 'F2', 'customer': 2, 'cost': 448}, {'facility': 'F2', 'customer': 3, 'cost': 114}, {'facility': 'F2', 'customer': 4, 'cost': 325}, {'facility': 'F2', 'customer': 5, 'cost': 583}, {'facility': 'F2', 'customer': 6, 'cost': 307}, {'facility': 'F2', 'customer': 7, 'cost': 910}, {'facility': 'F3', 'customer': 1, 'cost': 764}, {'facility': 'F3', 'customer': 2, 'cost': 746}, {'facility': 'F3', 'customer': 3, 'cost': 284}, {'facility': 'F3', 'customer': 4, 'cost': 44}, {'facility': 'F3', 'customer': 5, 'cost': 40}, {'facility': 'F3', 'customer': 6, 'cost': 443}, {'facility': 'F3', 'customer': 7, 'cost': 140}], 'objective': 3214.0}","{'selected': ['F2', 'F3'], 'assignments': ['F2', 'F2', 'F2', 'F3', 'F3', 'F2', 'F3']}",21,markdown_table,1
UFLP,UFLP,"Someone on the school staff is lining up afternoon tutoring and has to pick which rooms to open and where each student will go. What makes one plan better than another is simple: add together the rental charges for the chosen rooms and the travel burden for each student β€” the plan that gives the smallest combined amount is preferred. No student can be left unassigned or split between rooms; every student goes to one offered room, and rooms don’t have hard capacity limits. The concrete details follow below.

There are 3 rooms and 6 students in this instance.

**Rooms**
| room_id | room_rental_cost |
|---|---|
| F1 | 6680 |
| F2 | 1941 |
| F3 | 7239 |

**Students**
| student_id |
|---|
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |

**Student Travel Cost**
| room_id | student_id | student_travel_cost |
|---|---|---|
| F1 | 0 | 348 |
| F1 | 1 | 559 |
| F1 | 2 | 952 |
| F1 | 3 | 970 |
| F1 | 4 | 615 |
| F1 | 5 | 859 |
| F2 | 0 | 942 |
| F2 | 1 | 162 |
| F2 | 2 | 937 |
| F2 | 3 | 462 |
| F2 | 4 | 68 |
| F2 | 5 | 70 |
| F3 | 0 | 392 |
| F3 | 1 | 965 |
| F3 | 2 | 694 |
| F3 | 3 | 699 |
| F3 | 4 | 288 |
| F3 | 5 | 257 |

If you want to hand me the plan, a small JSON sketch is easiest β€” something that lists which rooms you open and, for each student, which opened room they go to. Here’s the shape I expect:

{
  ""solution"": {
    ""selected"": [<room_to_open>, <room_to_open>, ...],
    ""assignments"": [<chosen_open_room>, <chosen_open_room>, ...]
  }
}

""selected"" is just the list of room IDs you decide to open (the rental charges will be counted for those). ""assignments"" gives one entry per student showing the room they’ll attend β€” so the first entry is the room for the first student, the second for the second student, and so on. Easy, no extra fields needed.

This is just a sketch of the expected shape, not the actual answer β€” fill it in with the real IDs from the instance input.

Please use the exact identifiers from the instance input β€” do not rename them or invent new labels. For example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [6680, 1941, 7239], 'connection_costs': [[348, 559, 952, 970, 615, 859], [942, 162, 937, 462, 68, 70], [392, 965, 694, 699, 288, 257]], 'objective': 4582.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4582.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 6680}, {'id': 'F2', 'opening_cost': 1941}, {'id': 'F3', 'opening_cost': 7239}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 348}, {'facility': 'F1', 'customer': 1, 'cost': 559}, {'facility': 'F1', 'customer': 2, 'cost': 952}, {'facility': 'F1', 'customer': 3, 'cost': 970}, {'facility': 'F1', 'customer': 4, 'cost': 615}, {'facility': 'F1', 'customer': 5, 'cost': 859}, {'facility': 'F2', 'customer': 0, 'cost': 942}, {'facility': 'F2', 'customer': 1, 'cost': 162}, {'facility': 'F2', 'customer': 2, 'cost': 937}, {'facility': 'F2', 'customer': 3, 'cost': 462}, {'facility': 'F2', 'customer': 4, 'cost': 68}, {'facility': 'F2', 'customer': 5, 'cost': 70}, {'facility': 'F3', 'customer': 0, 'cost': 392}, {'facility': 'F3', 'customer': 1, 'cost': 965}, {'facility': 'F3', 'customer': 2, 'cost': 694}, {'facility': 'F3', 'customer': 3, 'cost': 699}, {'facility': 'F3', 'customer': 4, 'cost': 288}, {'facility': 'F3', 'customer': 5, 'cost': 257}], 'objective': 4582.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",22,markdown_table,0
UFLP,UFLP,"Many people rely on the bookmobile, and the outreach team must pick from a list of possible stops, each with its own price to operate. Patrons are scattered around, so once stops are chosen each patron needs to be assigned to exactly one of those running stops. The smart choice is the one that minimizes the total cost β€” the running costs for chosen stops plus the combined travel distance of everyone β€” calculated by simply adding those two parts together. No patron can be assigned to more than one stop or be left out, and assignments only count if the stop is actually running. The specifics are shown below.

# num_candidate_stops=2
# num_patrons=5
# STOPS
stop_id,stop_operating_cost
F1,2000
F2,2000
# PATRONS
patron_id
0
1
2
3
4
# TRAVEL_DISTANCES
stop_id,patron_id,travel_distance_cost
F1,0,100
F1,1,954
F1,2,299
F1,3,587
F1,4,675
F2,0,859
F2,1,691
F2,2,25
F2,3,356
F2,4,19

When you reply, just stick to this simple JSON layout so it's easy to parse and check.

{
  ""solution"": {
    ""selected"": [<stop_to_open>, <stop_to_open>, ...],
    ""assignments"": [<assigned_stop>, <assigned_stop>, ...]
  }
}

""selected"" is where you list the stops you decide to run (the ones you pay to operate). ""assignments"" is a list, in the same order as the patrons in the instance, saying which running stop each patron will use. Think of it like filling out a form: pick the stops, then say for each patron which stop they're going to.

This JSON is just a sketch of the shape I need β€” not the final answer itself.

Please be careful: use the exact identifiers from the instance input, do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000], 'connection_costs': [[100, 954, 299, 587, 675], [859, 691, 25, 356, 19]], 'objective': 3950.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",3950.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 100}, {'facility': 'F1', 'customer': 1, 'cost': 954}, {'facility': 'F1', 'customer': 2, 'cost': 299}, {'facility': 'F1', 'customer': 3, 'cost': 587}, {'facility': 'F1', 'customer': 4, 'cost': 675}, {'facility': 'F2', 'customer': 0, 'cost': 859}, {'facility': 'F2', 'customer': 1, 'cost': 691}, {'facility': 'F2', 'customer': 2, 'cost': 25}, {'facility': 'F2', 'customer': 3, 'cost': 356}, {'facility': 'F2', 'customer': 4, 'cost': 19}], 'objective': 3950.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",23,csv,0
UFLP,UFLP,"Many people don’t realize how much goes into choosing which distribution points to run for a farmers market network and how to route vendors there. Each candidate point has a cost to bring online, and each vendor has a cost to haul goods to whichever point they use. The goal is to keep the overall expense as small as possible β€” the total is simply the combined cost of the points we decide to run plus all vendors’ hauling costs β€” and every vendor must be sent to exactly one running point, with no duplicates or omissions. The concrete numbers appear below.

# num_distribution_points=4
# num_vendors=8
# DISTRIBUTION_POINTS
distribution_point_id,setup_cost
F1,1000
F2,1000
F3,1000
F4,1000
# VENDORS
vendor_id
0
1
2
3
4
5
6
7
# HAULINGS
distribution_point_id,vendor_id,hauling_cost
F1,0,977
F1,1,562
F1,2,257
F1,3,810
F1,4,909
F1,5,5
F1,6,691
F1,7,852
F2,0,17
F2,1,635
F2,2,81
F2,3,864
F2,4,747
F2,5,971
F2,6,638
F2,7,723
F3,0,814
F3,1,543
F3,2,684
F3,3,456
F3,4,503
F3,5,773
F3,6,4
F3,7,122
F4,0,594
F4,1,368
F4,2,416
F4,3,219
F4,4,940
F4,5,251
F4,6,816
F4,7,762

Also, I’ll keep my reply in a simple JSON layout so it’s easy to fill in β€” here’s the shape I expect you to follow:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is the list of market points you decide to run (put the exact identifiers from the instance there). ""assignments"" is a list, one entry per vendor in the same order as the instance, showing which open point that vendor goes to. It’s just a quick form-like sketch of the expected shape, not the real answer.

Please use the exact identifiers from the instance input β€” don’t rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1000, 1000, 1000, 1000], 'connection_costs': [[977, 562, 257, 810, 909, 5, 691, 852], [17, 635, 81, 864, 747, 971, 638, 723], [814, 543, 684, 456, 503, 773, 4, 122], [594, 368, 416, 219, 940, 251, 816, 762]], 'objective': 4477.0}","{'open_facilities': [2, 3], 'assignments': [3, 3, 3, 3, 2, 3, 2, 2]}",4477.0,"{'problem_type': 'UFLP', 'num_facilities': 4, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}, {'id': 'F4', 'opening_cost': 1000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 977}, {'facility': 'F1', 'customer': 1, 'cost': 562}, {'facility': 'F1', 'customer': 2, 'cost': 257}, {'facility': 'F1', 'customer': 3, 'cost': 810}, {'facility': 'F1', 'customer': 4, 'cost': 909}, {'facility': 'F1', 'customer': 5, 'cost': 5}, {'facility': 'F1', 'customer': 6, 'cost': 691}, {'facility': 'F1', 'customer': 7, 'cost': 852}, {'facility': 'F2', 'customer': 0, 'cost': 17}, {'facility': 'F2', 'customer': 1, 'cost': 635}, {'facility': 'F2', 'customer': 2, 'cost': 81}, {'facility': 'F2', 'customer': 3, 'cost': 864}, {'facility': 'F2', 'customer': 4, 'cost': 747}, {'facility': 'F2', 'customer': 5, 'cost': 971}, {'facility': 'F2', 'customer': 6, 'cost': 638}, {'facility': 'F2', 'customer': 7, 'cost': 723}, {'facility': 'F3', 'customer': 0, 'cost': 814}, {'facility': 'F3', 'customer': 1, 'cost': 543}, {'facility': 'F3', 'customer': 2, 'cost': 684}, {'facility': 'F3', 'customer': 3, 'cost': 456}, {'facility': 'F3', 'customer': 4, 'cost': 503}, {'facility': 'F3', 'customer': 5, 'cost': 773}, {'facility': 'F3', 'customer': 6, 'cost': 4}, {'facility': 'F3', 'customer': 7, 'cost': 122}, {'facility': 'F4', 'customer': 0, 'cost': 594}, {'facility': 'F4', 'customer': 1, 'cost': 368}, {'facility': 'F4', 'customer': 2, 'cost': 416}, {'facility': 'F4', 'customer': 3, 'cost': 219}, {'facility': 'F4', 'customer': 4, 'cost': 940}, {'facility': 'F4', 'customer': 5, 'cost': 251}, {'facility': 'F4', 'customer': 6, 'cost': 816}, {'facility': 'F4', 'customer': 7, 'cost': 762}], 'objective': 4477.0}","{'selected': ['F3', 'F4'], 'assignments': ['F4', 'F4', 'F4', 'F4', 'F3', 'F4', 'F3', 'F3']}",24,csv,0
UFLP,UFLP,"Backstage it’s being decided which candidate info tables to put people at and how to route each festivalgoer to a single staffed table so the combined hit β€” staffing fees plus everyone’s walking burden β€” is as small as possible. To measure a plan, total the staffing costs for the tables that are opened and then add every visitor’s walk cost based on which table they’re sent to. No one can be left unassigned or sent to an unstaffed table, and any staffed table can serve any number of visitors. The specific details and numbers are listed below.

# num_candidate_booths=3
# num_attendees=6
# BOOTHS
booth_id,staffing_fee
F1,1880
F2,1974
F3,1670
# ATTENDEES
attendee_id
0
1
2
3
4
5
# WALKINGS
booth_id,attendee_id,walking_cost
F1,0,126
F1,1,49
F1,2,835
F1,3,506
F1,4,880
F1,5,787
F2,0,691
F2,1,682
F2,2,214
F2,3,100
F2,4,292
F2,5,568
F3,0,447
F3,1,909
F3,2,652
F3,3,896
F3,4,625
F3,5,16

Quick heads-up: when you send back your plan, use this little JSON layout so I can read it reliably.

{
  ""solution"": {
    ""selected"": [<info_table_to_open>, <info_table_to_open>, ...],
    ""assignments"": [<assigned_info_table>, <assigned_info_table>, ...]
  }
}

""selected"" is where you list which info tables you're opening, and ""assignments"" is a list that, for each festivalgoer in the order they appear in the instance, says which opened table they get sent to. Think of it as a simple form: open these tables, and these people go to those tables.

This JSON is just the expected shape β€” a sketch of how your answer should be formatted, not the actual choices.

All identifiers in your actual answer must match the instance input exactly β€” do not rename them or invent new labels. For example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [1880, 1974, 1670], 'connection_costs': [[126, 49, 835, 506, 880, 787], [691, 682, 214, 100, 292, 568], [447, 909, 652, 896, 625, 16]], 'objective': 4521.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4521.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 1880}, {'id': 'F2', 'opening_cost': 1974}, {'id': 'F3', 'opening_cost': 1670}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 126}, {'facility': 'F1', 'customer': 1, 'cost': 49}, {'facility': 'F1', 'customer': 2, 'cost': 835}, {'facility': 'F1', 'customer': 3, 'cost': 506}, {'facility': 'F1', 'customer': 4, 'cost': 880}, {'facility': 'F1', 'customer': 5, 'cost': 787}, {'facility': 'F2', 'customer': 0, 'cost': 691}, {'facility': 'F2', 'customer': 1, 'cost': 682}, {'facility': 'F2', 'customer': 2, 'cost': 214}, {'facility': 'F2', 'customer': 3, 'cost': 100}, {'facility': 'F2', 'customer': 4, 'cost': 292}, {'facility': 'F2', 'customer': 5, 'cost': 568}, {'facility': 'F3', 'customer': 0, 'cost': 447}, {'facility': 'F3', 'customer': 1, 'cost': 909}, {'facility': 'F3', 'customer': 2, 'cost': 652}, {'facility': 'F3', 'customer': 3, 'cost': 896}, {'facility': 'F3', 'customer': 4, 'cost': 625}, {'facility': 'F3', 'customer': 5, 'cost': 16}], 'objective': 4521.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",25,csv,0
UFLP,UFLP,"Someone running a neighborhood parcel service is weighing which depots to switch on and which depot should handle each delivery. Each depot has a startup cost and each delivery carries a cost depending on the chosen depot, so decisions are judged by the total spend: depot startup costs plus the sum of all delivery costs. Every single delivery needs to be tied to one opened depot and not more. The full list of depots, costs, and deliveries appears below.

{
  ""num_depots"": 3,
  ""num_deliveries"": 8,
  ""depots"": [
    {
      ""depot_id"": ""F1"",
      ""depot_startup_cost"": 2000
    },
    {
      ""depot_id"": ""F2"",
      ""depot_startup_cost"": 2000
    },
    {
      ""depot_id"": ""F3"",
      ""depot_startup_cost"": 2000
    }
  ],
  ""deliverys"": [
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""A"",
      ""delivery_cost"": 103
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""B"",
      ""delivery_cost"": 174
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""C"",
      ""delivery_cost"": 349
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""D"",
      ""delivery_cost"": 896
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""E"",
      ""delivery_cost"": 735
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""F"",
      ""delivery_cost"": 225
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""G"",
      ""delivery_cost"": 197
    },
    {
      ""depot_id"": ""F1"",
      ""delivery_id"": ""H"",
      ""delivery_cost"": 641
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""A"",
      ""delivery_cost"": 897
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""B"",
      ""delivery_cost"": 244
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""C"",
      ""delivery_cost"": 402
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""D"",
      ""delivery_cost"": 953
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""E"",
      ""delivery_cost"": 477
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""F"",
      ""delivery_cost"": 208
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""G"",
      ""delivery_cost"": 659
    },
    {
      ""depot_id"": ""F2"",
      ""delivery_id"": ""H"",
      ""delivery_cost"": 687
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""A"",
      ""delivery_cost"": 491
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""B"",
      ""delivery_cost"": 754
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""C"",
      ""delivery_cost"": 260
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""D"",
      ""delivery_cost"": 391
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""E"",
      ""delivery_cost"": 337
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""F"",
      ""delivery_cost"": 619
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""G"",
      ""delivery_cost"": 363
    },
    {
      ""depot_id"": ""F3"",
      ""delivery_id"": ""H"",
      ""delivery_cost"": 72
    }
  ]
}

You can just send back the choices in a tiny JSON snippet like this:

{
  ""solution"": {
    ""selected"": [<depot_to_open>, <depot_to_open>, ...],
    ""assignments"": [<chosen_open_depot>, <chosen_open_depot>, ...]
  }
}

Think of ""selected"" as the list of depots you decide to switch on, and ""assignments"" as, for each delivery in order, which opened depot will handle it. Super casual sketch β€” not the final picks, just the shape I need.

Please make sure you use the exact depot and delivery identifiers from the instance input β€” don't rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[103, 174, 349, 896, 735, 225, 197, 641], [897, 244, 402, 953, 477, 208, 659, 687], [491, 754, 260, 391, 337, 619, 363, 72]], 'objective': 5287.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2, 2]}",5287.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}, {'id': 'H'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 103}, {'facility': 'F1', 'customer': 'B', 'cost': 174}, {'facility': 'F1', 'customer': 'C', 'cost': 349}, {'facility': 'F1', 'customer': 'D', 'cost': 896}, {'facility': 'F1', 'customer': 'E', 'cost': 735}, {'facility': 'F1', 'customer': 'F', 'cost': 225}, {'facility': 'F1', 'customer': 'G', 'cost': 197}, {'facility': 'F1', 'customer': 'H', 'cost': 641}, {'facility': 'F2', 'customer': 'A', 'cost': 897}, {'facility': 'F2', 'customer': 'B', 'cost': 244}, {'facility': 'F2', 'customer': 'C', 'cost': 402}, {'facility': 'F2', 'customer': 'D', 'cost': 953}, {'facility': 'F2', 'customer': 'E', 'cost': 477}, {'facility': 'F2', 'customer': 'F', 'cost': 208}, {'facility': 'F2', 'customer': 'G', 'cost': 659}, {'facility': 'F2', 'customer': 'H', 'cost': 687}, {'facility': 'F3', 'customer': 'A', 'cost': 491}, {'facility': 'F3', 'customer': 'B', 'cost': 754}, {'facility': 'F3', 'customer': 'C', 'cost': 260}, {'facility': 'F3', 'customer': 'D', 'cost': 391}, {'facility': 'F3', 'customer': 'E', 'cost': 337}, {'facility': 'F3', 'customer': 'F', 'cost': 619}, {'facility': 'F3', 'customer': 'G', 'cost': 363}, {'facility': 'F3', 'customer': 'H', 'cost': 72}], 'objective': 5287.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",26,json,names
UFLP,UFLP,"There’s a community project to roll out lending lockers for a local tool library so people can pick up items at convenient spots. The job is to pick which lockers to install and then attach every borrower to exactly one of the installed lockers β€” nobody should be missing or duplicated in the sign-up list. Effectiveness is judged by the sum of two things: the cost of installing the chosen lockers plus the sum of each borrower’s effort to fetch their tools; the lower that combined sum, the better the plan. The specific locker locations, installation costs, and borrower list will be shown below.

Details: 3 candidate locker locations, 6 borrowers, installation costs 2140, 4636, 2117.
Locker F1: installation cost 2140.
Locker F2: installation cost 4636.
Locker F3: installation cost 2117.
Borrower A to locker F1: retrieval effort 574.
Borrower B to locker F1: retrieval effort 242.
Borrower C to locker F1: retrieval effort 819.
Borrower D to locker F1: retrieval effort 278.
Borrower E to locker F1: retrieval effort 959.
Borrower F to locker F1: retrieval effort 750.
Borrower A to locker F2: retrieval effort 653.
Borrower B to locker F2: retrieval effort 38.
Borrower C to locker F2: retrieval effort 135.
Borrower D to locker F2: retrieval effort 997.
Borrower E to locker F2: retrieval effort 182.
Borrower F to locker F2: retrieval effort 591.
Borrower A to locker F3: retrieval effort 906.
Borrower B to locker F3: retrieval effort 246.
Borrower C to locker F3: retrieval effort 900.
Borrower D to locker F3: retrieval effort 642.
Borrower E to locker F3: retrieval effort 418.
Borrower F to locker F3: retrieval effort 513.
The lists below enumerate each locker and each borrower-locker retrieval effort.

I’ll send the plan back in a simple JSON layout so it’s easy to read and use. It will follow this shape:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_site_to_open>, <chosen_site_to_open>, ...]
  }
}

""selected"" is where I’ll list which locker sites we decide to install. ""assignments"" is a list, in borrower order, saying which opened site each borrower is attached to. Think of it as a short form β€” a sketch of the shape I’ll fill with the actual choices.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2140, 4636, 2117], 'connection_costs': [[574, 242, 819, 278, 959, 750], [653, 38, 135, 997, 182, 591], [906, 246, 900, 642, 418, 513]], 'objective': 5742.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2]}",5742.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2140}, {'id': 'F2', 'opening_cost': 4636}, {'id': 'F3', 'opening_cost': 2117}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 574}, {'facility': 'F1', 'customer': 'B', 'cost': 242}, {'facility': 'F1', 'customer': 'C', 'cost': 819}, {'facility': 'F1', 'customer': 'D', 'cost': 278}, {'facility': 'F1', 'customer': 'E', 'cost': 959}, {'facility': 'F1', 'customer': 'F', 'cost': 750}, {'facility': 'F2', 'customer': 'A', 'cost': 653}, {'facility': 'F2', 'customer': 'B', 'cost': 38}, {'facility': 'F2', 'customer': 'C', 'cost': 135}, {'facility': 'F2', 'customer': 'D', 'cost': 997}, {'facility': 'F2', 'customer': 'E', 'cost': 182}, {'facility': 'F2', 'customer': 'F', 'cost': 591}, {'facility': 'F3', 'customer': 'A', 'cost': 906}, {'facility': 'F3', 'customer': 'B', 'cost': 246}, {'facility': 'F3', 'customer': 'C', 'cost': 900}, {'facility': 'F3', 'customer': 'D', 'cost': 642}, {'facility': 'F3', 'customer': 'E', 'cost': 418}, {'facility': 'F3', 'customer': 'F', 'cost': 513}], 'objective': 5742.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",27,nl,names
UFLP,UFLP,"Recently the county asked us to choose which vaccination sites to operate and to assign each resident to a single chosen site. The winning setup is the one with the smallest total cost β€” that total comes from the sum of the sites’ operating costs we use plus the travel cost for each resident to their assigned spot. Make sure everyone has one assigned site and no one is assigned twice; the concrete figures are shown below.

For our decision we have 2 candidate sites, 6 residents, and the sequence of site operating costs 1000, 1000.
Site F1: if we open it its operating cost is 1000.
Site F2: if we open it its operating cost is 1000.
Resident 1 β€” if we assign them to site F1 β€” would incur travel cost 200.
Resident 2 β€” if we assign them to site F1 β€” would incur travel cost 608.
Resident 3 β€” if we assign them to site F1 β€” would incur travel cost 584.
Resident 4 β€” if we assign them to site F1 β€” would incur travel cost 226.
Resident 5 β€” if we assign them to site F1 β€” would incur travel cost 653.
Resident 6 β€” if we assign them to site F1 β€” would incur travel cost 781.
Resident 1 β€” if we assign them to site F2 β€” would incur travel cost 812.
Resident 2 β€” if we assign them to site F2 β€” would incur travel cost 258.
Resident 3 β€” if we assign them to site F2 β€” would incur travel cost 916.
Resident 4 β€” if we assign them to site F2 β€” would incur travel cost 40.
Resident 5 β€” if we assign them to site F2 β€” would incur travel cost 580.
Resident 6 β€” if we assign them to site F2 β€” would incur travel cost 233.
We'll use these figures to choose which sites to operate and to assign every resident to exactly one opened site.

Just send back your answer in this little JSON shape so I can read it programmatically β€” nothing fancy, just the keys below.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is where you list the vaccination sites you choose to operate. ""assignments"" is a list, in the same order as the residents in the instance, saying which chosen site each resident will go to. Think of it like filling out a simple form: which sites are open, and which site each person is assigned to.

This JSON is just a sketch of the expected shape β€” please return the actual choices and assignments when you answer.

All identifiers must be used exactly as they appear in the instance input β€” no renaming and no new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1000, 1000], 'connection_costs': [[200, 608, 584, 226, 653, 781], [812, 258, 916, 40, 580, 233]], 'objective': 3839.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",3839.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 200}, {'facility': 'F1', 'customer': 2, 'cost': 608}, {'facility': 'F1', 'customer': 3, 'cost': 584}, {'facility': 'F1', 'customer': 4, 'cost': 226}, {'facility': 'F1', 'customer': 5, 'cost': 653}, {'facility': 'F1', 'customer': 6, 'cost': 781}, {'facility': 'F2', 'customer': 1, 'cost': 812}, {'facility': 'F2', 'customer': 2, 'cost': 258}, {'facility': 'F2', 'customer': 3, 'cost': 916}, {'facility': 'F2', 'customer': 4, 'cost': 40}, {'facility': 'F2', 'customer': 5, 'cost': 580}, {'facility': 'F2', 'customer': 6, 'cost': 233}], 'objective': 3839.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",28,nl,1
UFLP,UFLP,"I run a fleet of mobile pet groomers and have to pick which pop-up grooming tents to put up around town and then send every client to one of those tents. The trick is that each tent costs money to set up, and every client has a travel or pickup cost to get to the tent they use, so the better plan is the one that keeps the overall bill as low as possible β€” add up the setup fees for the tents that are put up plus the travel/pickup cost for every client. Each client has to be assigned to exactly one of the tents we actually set up (no one gets skipped and nobody goes to two places), and tents can handle as many pets as needed. The concrete details are shown below.

{
  ""num_candidate_tents"": 2,
  ""num_clients"": 5,
  ""tents"": [
    {
      ""tent_id"": ""F1"",
      ""tent_setup_cost"": 2000
    },
    {
      ""tent_id"": ""F2"",
      ""tent_setup_cost"": 2000
    }
  ],
  ""clients"": [
    {
      ""client_id"": ""A""
    },
    {
      ""client_id"": ""B""
    },
    {
      ""client_id"": ""C""
    },
    {
      ""client_id"": ""D""
    },
    {
      ""client_id"": ""E""
    }
  ],
  ""client_travels"": [
    {
      ""tent_id"": ""F1"",
      ""client_id"": ""A"",
      ""client_travel_cost"": 378
    },
    {
      ""tent_id"": ""F1"",
      ""client_id"": ""B"",
      ""client_travel_cost"": 235
    },
    {
      ""tent_id"": ""F1"",
      ""client_id"": ""C"",
      ""client_travel_cost"": 194
    },
    {
      ""tent_id"": ""F1"",
      ""client_id"": ""D"",
      ""client_travel_cost"": 403
    },
    {
      ""tent_id"": ""F1"",
      ""client_id"": ""E"",
      ""client_travel_cost"": 706
    },
    {
      ""tent_id"": ""F2"",
      ""client_id"": ""A"",
      ""client_travel_cost"": 715
    },
    {
      ""tent_id"": ""F2"",
      ""client_id"": ""B"",
      ""client_travel_cost"": 93
    },
    {
      ""tent_id"": ""F2"",
      ""client_id"": ""C"",
      ""client_travel_cost"": 863
    },
    {
      ""tent_id"": ""F2"",
      ""client_id"": ""D"",
      ""client_travel_cost"": 376
    },
    {
      ""tent_id"": ""F2"",
      ""client_id"": ""E"",
      ""client_travel_cost"": 516
    }
  ]
}

Also, just so everything comes back to me in a predictable shape, please put the plan in this little JSON layout when you reply β€” just the same structure, nice and simple:

{
  ""solution"": {
    ""selected"": [<tent_to_open>, <tent_to_open>, ...],
    ""assignments"": [<chosen_open_tent>, <chosen_open_tent>, ...]
  }
}

""selected"" is where you list the tents you decide to set up. ""assignments"" is a client-by-client list (in the same order as the input) saying which opened tent each client will go to. Think of it like filling out a short form: which tents are up, and for every client which tent they use.

This JSON is just a sketch of the expected shape β€” not the actual answer itself.

Please make sure to use the exact identifiers from the instance input when you fill this in β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000], 'connection_costs': [[378, 235, 194, 403, 706], [715, 93, 863, 376, 516]], 'objective': 3916.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",3916.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 378}, {'facility': 'F1', 'customer': 'B', 'cost': 235}, {'facility': 'F1', 'customer': 'C', 'cost': 194}, {'facility': 'F1', 'customer': 'D', 'cost': 403}, {'facility': 'F1', 'customer': 'E', 'cost': 706}, {'facility': 'F2', 'customer': 'A', 'cost': 715}, {'facility': 'F2', 'customer': 'B', 'cost': 93}, {'facility': 'F2', 'customer': 'C', 'cost': 863}, {'facility': 'F2', 'customer': 'D', 'cost': 376}, {'facility': 'F2', 'customer': 'E', 'cost': 516}], 'objective': 3916.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",29,json,names
UFLP,UFLP,"I’m looking after the city’s waste dropoff network and need to choose which pickup sites to keep open and which to close. Each site kept costs money to maintain, and every household has some effort or travel distance to get to whichever site they use. A good plan is simply one that costs less overall: add up the upkeep costs for the sites that stay open plus the travel burden for every household to its assigned site, and keep that total as small as possible. Every household has to be assigned to exactly one of the sites that are kept open β€” nobody can be left without a dropoff or sent to a closed one. The exact list of sites, their maintenance fees, and household travel numbers are shown below.

# num_dropoff_sites=3
# num_households=7
# DROPOFF_SITES
dropoff_site_id,site_maintenance_cost
F1,1060
F2,1291
F3,1755
# HOUSEHOLDS
household_id
A
B
C
D
E
F
G
# HOUSEHOLD_TRAVELS
dropoff_site_id,household_id,household_travel_cost
F1,A,740
F1,B,776
F1,C,608
F1,D,119
F1,E,768
F1,F,296
F1,G,954
F2,A,179
F2,B,352
F2,C,816
F2,D,671
F2,E,491
F2,F,169
F2,G,758
F3,A,950
F3,B,866
F3,C,561
F3,D,477
F3,E,111
F3,F,435
F3,G,761

I’ll show the shape I want the answer in so it’s easy to read and plug into whatever tool you’re using. Keep the layout exactly like this:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is the list of pickup sites you’ll keep open. ""assignments"" lists, for each household in the same order as the input, which open site that household uses. This is just a sketch of the expected shape β€” not the real solution.

Please make sure all identifiers come straight from the instance and are not changed or invented. No renaming or new labels β€” use them exactly as given.

- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1060, 1291, 1755], 'connection_costs': [[740, 776, 608, 119, 768, 296, 954], [179, 352, 816, 671, 491, 169, 758], [950, 866, 561, 477, 111, 435, 761]], 'objective': 4727.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1, 1]}",4727.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1060}, {'id': 'F2', 'opening_cost': 1291}, {'id': 'F3', 'opening_cost': 1755}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 740}, {'facility': 'F1', 'customer': 'B', 'cost': 776}, {'facility': 'F1', 'customer': 'C', 'cost': 608}, {'facility': 'F1', 'customer': 'D', 'cost': 119}, {'facility': 'F1', 'customer': 'E', 'cost': 768}, {'facility': 'F1', 'customer': 'F', 'cost': 296}, {'facility': 'F1', 'customer': 'G', 'cost': 954}, {'facility': 'F2', 'customer': 'A', 'cost': 179}, {'facility': 'F2', 'customer': 'B', 'cost': 352}, {'facility': 'F2', 'customer': 'C', 'cost': 816}, {'facility': 'F2', 'customer': 'D', 'cost': 671}, {'facility': 'F2', 'customer': 'E', 'cost': 491}, {'facility': 'F2', 'customer': 'F', 'cost': 169}, {'facility': 'F2', 'customer': 'G', 'cost': 758}, {'facility': 'F3', 'customer': 'A', 'cost': 950}, {'facility': 'F3', 'customer': 'B', 'cost': 866}, {'facility': 'F3', 'customer': 'C', 'cost': 561}, {'facility': 'F3', 'customer': 'D', 'cost': 477}, {'facility': 'F3', 'customer': 'E', 'cost': 111}, {'facility': 'F3', 'customer': 'F', 'cost': 435}, {'facility': 'F3', 'customer': 'G', 'cost': 761}], 'objective': 4727.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",30,csv,names
UFLP,UFLP,"Many people assumed the answer was β€œturn on everything,” but the ops crew knew better: only some nodes should be enabled, and each user should be assigned to one enabled node. Switching on a node costs money, and each user routed pays a latency cost β€” the overall amount to watch is the sum of those activation fees plus the users’ latency costs, so a plan that lowers that sum wins. Each user needs a single assigned active node (no doubling up or leaving anyone out), and capacity isn’t a constraint. The specifics are given below.

There are 2 nodes and 5 users in this instance.

**Nodes**
| node_id | node_activation_cost |
|---|---|
| F1 | 2000 |
| F2 | 2000 |

**Users**
| user_id |
|---|
| A |
| B |
| C |
| D |
| E |

**Latency Cost**
| node_id | user_id | latency_cost |
|---|---|---|
| F1 | A | 832 |
| F1 | B | 325 |
| F1 | C | 869 |
| F1 | D | 365 |
| F1 | E | 186 |
| F2 | A | 19 |
| F2 | B | 933 |
| F2 | C | 753 |
| F2 | D | 542 |
| F2 | E | 701 |

If you want to reply with the plan, please stick to this simple JSON shape so it's easy to parse β€” just a tiny sketch of which nodes you turn on and who goes where.

{
  ""solution"": {
    ""selected"": [<node_to_enable>, <node_to_enable>, ...],
    ""assignments"": [<assigned_node>, <assigned_node>, ...]
  }
}

""selected"" is the list of nodes you switch on (the activation fees you pay). ""assignments"" is a per-user list β€” for each user in the same order as the input, put the one active node they're routed to. Think of it like filling out a short form: which nodes are enabled, and then, for each user, which enabled node they use. This JSON is just the expected shape β€” not the actual answer.

Please make sure to use the identifiers exactly as they appear in the instance input β€” do not rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000], 'connection_costs': [[832, 325, 869, 365, 186], [19, 933, 753, 542, 701]], 'objective': 4577.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",4577.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 832}, {'facility': 'F1', 'customer': 'B', 'cost': 325}, {'facility': 'F1', 'customer': 'C', 'cost': 869}, {'facility': 'F1', 'customer': 'D', 'cost': 365}, {'facility': 'F1', 'customer': 'E', 'cost': 186}, {'facility': 'F2', 'customer': 'A', 'cost': 19}, {'facility': 'F2', 'customer': 'B', 'cost': 933}, {'facility': 'F2', 'customer': 'C', 'cost': 753}, {'facility': 'F2', 'customer': 'D', 'cost': 542}, {'facility': 'F2', 'customer': 'E', 'cost': 701}], 'objective': 4577.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",31,markdown_table,names
UFLP,UFLP,"Many people depend on our local meal pickup program, and part of running it is choosing which kitchens to turn on and deciding a single kitchen for each recipient. Turning on a kitchen costs a set amount, and getting a meal from that kitchen to a person has its own cost β€” the grand total is the sum of the kitchens we open plus all the individual pickup/delivery charges. Every recipient must be paired with one open kitchen (no doubles, no omissions), and open kitchens can take unlimited orders. The concrete numbers and options are listed below.

There are 3 kitchens and 6 recipients in this instance.

**Kitchens**
| kitchen_id | kitchen_opening_cost |
|---|---|
| F1 | 2000 |
| F2 | 2000 |
| F3 | 2000 |

**Recipients**
| recipient_id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |

**Pickup Delivery Cost**
| kitchen_id | recipient_id | pickup_delivery_cost |
|---|---|---|
| F1 | 1 | 75 |
| F1 | 2 | 449 |
| F1 | 3 | 492 |
| F1 | 4 | 712 |
| F1 | 5 | 22 |
| F1 | 6 | 433 |
| F2 | 1 | 363 |
| F2 | 2 | 837 |
| F2 | 3 | 696 |
| F2 | 4 | 574 |
| F2 | 5 | 836 |
| F2 | 6 | 610 |
| F3 | 1 | 842 |
| F3 | 2 | 52 |
| F3 | 3 | 44 |
| F3 | 4 | 331 |
| F3 | 5 | 859 |
| F3 | 6 | 333 |

If you prefer a neat, copy-pastable format for the result, I'll use a tiny JSON sketch like this so it's easy to read and check:

{
  ""solution"": {
    ""selected"": [<kitchen_to_open>, <kitchen_to_open>, ...],
    ""assignments"": [<kitchen_chosen_for_recipient>, <kitchen_chosen_for_recipient>, ...]
  }
}

""selected"" is where I'll list the kitchens we decide to turn on. ""assignments"" is a list, one entry per recipient in the same order as the instance, showing which open kitchen each person will use. This is just the shape I’ll follow β€” not the final choices.

Please use the exact identifiers from the instance input for every entry β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[75, 449, 492, 712, 22, 433], [363, 837, 696, 574, 836, 610], [842, 52, 44, 331, 859, 333]], 'objective': 4183.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",4183.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 75}, {'facility': 'F1', 'customer': 2, 'cost': 449}, {'facility': 'F1', 'customer': 3, 'cost': 492}, {'facility': 'F1', 'customer': 4, 'cost': 712}, {'facility': 'F1', 'customer': 5, 'cost': 22}, {'facility': 'F1', 'customer': 6, 'cost': 433}, {'facility': 'F2', 'customer': 1, 'cost': 363}, {'facility': 'F2', 'customer': 2, 'cost': 837}, {'facility': 'F2', 'customer': 3, 'cost': 696}, {'facility': 'F2', 'customer': 4, 'cost': 574}, {'facility': 'F2', 'customer': 5, 'cost': 836}, {'facility': 'F2', 'customer': 6, 'cost': 610}, {'facility': 'F3', 'customer': 1, 'cost': 842}, {'facility': 'F3', 'customer': 2, 'cost': 52}, {'facility': 'F3', 'customer': 3, 'cost': 44}, {'facility': 'F3', 'customer': 4, 'cost': 331}, {'facility': 'F3', 'customer': 5, 'cost': 859}, {'facility': 'F3', 'customer': 6, 'cost': 333}], 'objective': 4183.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",32,markdown_table,1
UFLP,UFLP,"Someone on the events crew has to map out which pop-up booths get rented and then tie each customer group to a single one of those booths. Each group must end up at exactly one open booth (no leftovers, no multiple assignments), and booths can host as many groups as needed. The deciding factor is total cost: take the fees for the booths that are opened and add the travel/service cost for every group to its assigned booth β€” the configuration with the smallest total is the one to pick. The precise details are shown below.

# num_booths=2
# num_customer_groups=5
# BOOTHS
booth_id,booth_rental_fee
F1,1812
F2,1161
# GROUPS
group_id
1
2
3
4
5
# GROUP_TRAVEL_SERVICES
booth_id,group_id,group_travel_service_cost
F1,1,650
F1,2,887
F1,3,786
F1,4,145
F1,5,915
F2,1,779
F2,2,922
F2,3,542
F2,4,979
F2,5,954

When you answer, just return the picks in a tiny JSON blob like the one below so it's easy to parse β€” nothing fancy, just the two lists we need.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<assigned_site>, <assigned_site>, ...]
  }
}

Think of ""selected"" as the booths we decide to rent, and ""assignments"" as a simple one-entry-per-group list saying which rented booth each group goes to. Super casual: selected = which booths are open, assignments = which open booth each group is tied to.

This JSON is just a sketch of the shape I want back β€” not the real answer. Also, please use the exact identifiers from the instance input with no renaming and no new labels.  
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1812, 1161], 'connection_costs': [[650, 887, 786, 145, 915], [779, 922, 542, 979, 954]], 'objective': 5195.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",5195.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1812}, {'id': 'F2', 'opening_cost': 1161}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 650}, {'facility': 'F1', 'customer': 2, 'cost': 887}, {'facility': 'F1', 'customer': 3, 'cost': 786}, {'facility': 'F1', 'customer': 4, 'cost': 145}, {'facility': 'F1', 'customer': 5, 'cost': 915}, {'facility': 'F2', 'customer': 1, 'cost': 779}, {'facility': 'F2', 'customer': 2, 'cost': 922}, {'facility': 'F2', 'customer': 3, 'cost': 542}, {'facility': 'F2', 'customer': 4, 'cost': 979}, {'facility': 'F2', 'customer': 5, 'cost': 954}], 'objective': 5195.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",33,csv,1
UFLP,UFLP,"Recently the bike-share folks have been mapping out which docks to open and which dock every rider should be linked to. There’s a cost to open any dock and a separate inconvenience score for each rider depending on which opened dock they use, so the winning plan is simply the one with the smallest combined cost: the total of all dock-opening fees plus the total of all riders’ access costs. Nobody can be left without a registered dock or assigned to a dock that wasn’t opened, and docks don’t have limits on how many riders they can handle. The concrete details are shown below.

There are 2 stations and 6 riders in this instance.

**Stations**
| station_id | station_opening_fee |
|---|---|
| F1 | 2000 |
| F2 | 2000 |

**Riders**
| rider_id |
|---|
| A |
| B |
| C |
| D |
| E |
| F |

**Access Inconvenience**
| station_id | rider_id | access_inconvenience |
|---|---|---|
| F1 | A | 325 |
| F1 | B | 981 |
| F1 | C | 332 |
| F1 | D | 457 |
| F1 | E | 452 |
| F1 | F | 856 |
| F2 | A | 534 |
| F2 | B | 599 |
| F2 | C | 238 |
| F2 | D | 432 |
| F2 | E | 610 |
| F2 | F | 9 |

Oh, and when you send the plan back, just use this simple JSON shape so I can read it easily:

{
  ""solution"": {
    ""selected"": [<dock_to_open>, <dock_to_open>, ...],
    ""assignments"": [<assigned_dock>, <assigned_dock>, ...]
  }
}

""selected"" is where you list the docks you choose to open. ""assignments"" is a parallel list (one entry per rider, in the same order as the input) saying which opened dock each rider is linked to. Think of it like filling out a form: which docks are active, and who goes to which one.

This is just a sketch of the expected shape, not the actual answerβ€”I'll need the real identifiers from the instance to produce a concrete plan. Please make sure you use the identifiers exactly as they appear in the input β€” no renaming and no new labels.

For example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000], 'connection_costs': [[325, 981, 332, 457, 452, 856], [534, 599, 238, 432, 610, 9]], 'objective': 4422.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4422.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 325}, {'facility': 'F1', 'customer': 'B', 'cost': 981}, {'facility': 'F1', 'customer': 'C', 'cost': 332}, {'facility': 'F1', 'customer': 'D', 'cost': 457}, {'facility': 'F1', 'customer': 'E', 'cost': 452}, {'facility': 'F1', 'customer': 'F', 'cost': 856}, {'facility': 'F2', 'customer': 'A', 'cost': 534}, {'facility': 'F2', 'customer': 'B', 'cost': 599}, {'facility': 'F2', 'customer': 'C', 'cost': 238}, {'facility': 'F2', 'customer': 'D', 'cost': 432}, {'facility': 'F2', 'customer': 'E', 'cost': 610}, {'facility': 'F2', 'customer': 'F', 'cost': 9}], 'objective': 4422.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",34,markdown_table,names
UFLP,UFLP,"We coordinate a network of volunteer tutoring spots and are deciding which spots to activate and which active spot each student should go to. Activating a spot costs money, and each student has a travel cost depending on which active spot they’re sent to. Better choices are those where the sum of the activation costs plus all students’ travel costs ends up lowest. Each student must go to one, and only one, active spot; nobody gets skipped. The concrete details are listed below.

There are 2 hubs and 5 learners in this instance.

**Hubs**
| hub_id | activation_cost |
|---|---|
| F1 | 2000 |
| F2 | 2000 |

**Learners**
| learner_id |
|---|
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |

**Travel Cost**
| hub_id | learner_id | travel_cost |
|---|---|---|
| F1 | 0 | 901 |
| F1 | 1 | 390 |
| F1 | 2 | 81 |
| F1 | 3 | 769 |
| F1 | 4 | 315 |
| F2 | 0 | 780 |
| F2 | 1 | 348 |
| F2 | 2 | 695 |
| F2 | 3 | 82 |
| F2 | 4 | 630 |

Also, when you send back the actual choices, please use a tiny JSON snippet like this to tell us which spots you activate and which active spot each student goes to.

{
  ""solution"": {
    ""selected"": [<spot_to_activate>, <spot_to_activate>, ...],
    ""assignments"": [<assigned_spot>, <assigned_spot>, ...]
  }
}

This just sketches the shape we want: ""selected"" is the list of spots you decide to activate (one placeholder per spot), and ""assignments"" lists, in order, which active spot each student is sent to. Think of it like filling out a short form β€” which locations are turned on, and for each student which turned-on spot they’ll use.

The JSON above is only an example of the shape we need, not the answer itself.

One more important thing β€” use the exact identifiers from the instance input, do not rename them or invent new ones. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000], 'connection_costs': [[901, 390, 81, 769, 315], [780, 348, 695, 82, 630]], 'objective': 4456.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0]}",4456.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 901}, {'facility': 'F1', 'customer': 1, 'cost': 390}, {'facility': 'F1', 'customer': 2, 'cost': 81}, {'facility': 'F1', 'customer': 3, 'cost': 769}, {'facility': 'F1', 'customer': 4, 'cost': 315}, {'facility': 'F2', 'customer': 0, 'cost': 780}, {'facility': 'F2', 'customer': 1, 'cost': 348}, {'facility': 'F2', 'customer': 2, 'cost': 695}, {'facility': 'F2', 'customer': 3, 'cost': 82}, {'facility': 'F2', 'customer': 4, 'cost': 630}], 'objective': 4456.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1']}",35,markdown_table,0
UFLP,UFLP,"Recently during the response phase it became clear: decide which depots to activate and assign every affected household to one of the open depots. Activating a depot comes with a price, and every household will incur some effort to reach the depot they’re sent to. The plan that wins is the one with the lowest overall sum β€” add together the operating cost for every opened depot and the pickup effort for every household. Every household has to be assigned to exactly one open depot; nothing is omitted or duplicated. The concrete details appear below.

There are 2 depots and 5 households in this instance.

**Depots**
| depot_id | depot_opening_cost |
|---|---|
| F1 | 1550 |
| F2 | 1374 |

**Households**
| household_id |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |

**Pickup Effort**
| depot_id | household_id | pickup_effort |
|---|---|---|
| F1 | 1 | 984 |
| F1 | 2 | 377 |
| F1 | 3 | 321 |
| F1 | 4 | 950 |
| F1 | 5 | 625 |
| F2 | 1 | 95 |
| F2 | 2 | 781 |
| F2 | 3 | 600 |
| F2 | 4 | 567 |
| F2 | 5 | 411 |

Oh, and when you send the plan back, just use a tiny JSON object like this β€” nothing fancy, just that shape:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is the list of depots/depots-to-activate (the ones we pay to open). ""assignments"" lists, in order, which open depot each household is sent to. Super simple, like filling out a form β€” which depots, and which depot for each household.

This is just a sketch of the shape I need, not the actual answer. Please make sure all identifiers you use match the instance input exactly β€” don't rename or invent labels. Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'opening_costs': [1550, 1374], 'connection_costs': [[984, 377, 321, 950, 625], [95, 781, 600, 567, 411]], 'objective': 3828.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1]}",3828.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 5, 'facilities': [{'id': 'F1', 'opening_cost': 1550}, {'id': 'F2', 'opening_cost': 1374}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 984}, {'facility': 'F1', 'customer': 2, 'cost': 377}, {'facility': 'F1', 'customer': 3, 'cost': 321}, {'facility': 'F1', 'customer': 4, 'cost': 950}, {'facility': 'F1', 'customer': 5, 'cost': 625}, {'facility': 'F2', 'customer': 1, 'cost': 95}, {'facility': 'F2', 'customer': 2, 'cost': 781}, {'facility': 'F2', 'customer': 3, 'cost': 600}, {'facility': 'F2', 'customer': 4, 'cost': 567}, {'facility': 'F2', 'customer': 5, 'cost': 411}], 'objective': 3828.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2']}",36,markdown_table,1
UFLP,UFLP,"Recently the team running a neighborhood art rental decided to rethink which pickup spots to offer and who should use each spot. The idea is to balance the cost of running each spot with how much it costs clients to get there β€” the plan that wins is the one with the lowest sum of the chosen spots’ operating fees plus all clients’ connection costs. It’s important that every client is assigned to one, and only one, open pickup point (no sharing and no leaving anyone out). The concrete details are provided below.

There are 3 candidate pickup points and 8 clients; pickup point operation fees are 6399, 8454, 2329.
Pickup point F1 has an operation fee of 6399.
Pickup point F2 has an operation fee of 8454.
Pickup point F3 has an operation fee of 2329.
For client 0, the cost to use pickup point F1 is 854.
For client 1, the cost to use pickup point F1 is 556.
For client 2, the cost to use pickup point F1 is 45.
For client 3, the cost to use pickup point F1 is 759.
For client 4, the cost to use pickup point F1 is 613.
For client 5, the cost to use pickup point F1 is 981.
For client 6, the cost to use pickup point F1 is 37.
For client 7, the cost to use pickup point F1 is 186.
For client 0, the cost to use pickup point F2 is 136.
For client 1, the cost to use pickup point F2 is 553.
For client 2, the cost to use pickup point F2 is 462.
For client 3, the cost to use pickup point F2 is 513.
For client 4, the cost to use pickup point F2 is 578.
For client 5, the cost to use pickup point F2 is 862.
For client 6, the cost to use pickup point F2 is 352.
For client 7, the cost to use pickup point F2 is 496.
For client 0, the cost to use pickup point F3 is 905.
For client 1, the cost to use pickup point F3 is 541.
For client 2, the cost to use pickup point F3 is 908.
For client 3, the cost to use pickup point F3 is 257.
For client 4, the cost to use pickup point F3 is 605.
For client 5, the cost to use pickup point F3 is 326.
For client 6, the cost to use pickup point F3 is 729.
For client 7, the cost to use pickup point F3 is 830.
Each following line names one pickup point or one client-to-point cost; together they define the inputs for selecting the lowest-cost plan.

Oh, and when you send the final pick of spots and who goes where, please use a simple JSON shape like this so I can read it automatically:

{
  ""solution"": {
    ""selected"": [<pickup_spot>, <pickup_spot>, ...],
    ""assignments"": [<assigned_spot>, <assigned_spot>, ...]
  }
}

Pretty straightforward: ""selected"" is the list of pickup spots you choose to open, and ""assignments"" lists, in customer order, which open spot each customer will use. Think of it like filling out a quick form β€” this is just the expected shape, not the final content.

Important: use the exact identifiers from the instance input β€” do not rename or invent labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [6399, 8454, 2329], 'connection_costs': [[854, 556, 45, 759, 613, 981, 37, 186], [136, 553, 462, 513, 578, 862, 352, 496], [905, 541, 908, 257, 605, 326, 729, 830]], 'objective': 7430.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2, 2]}",7430.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 6399}, {'id': 'F2', 'opening_cost': 8454}, {'id': 'F3', 'opening_cost': 2329}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 854}, {'facility': 'F1', 'customer': 1, 'cost': 556}, {'facility': 'F1', 'customer': 2, 'cost': 45}, {'facility': 'F1', 'customer': 3, 'cost': 759}, {'facility': 'F1', 'customer': 4, 'cost': 613}, {'facility': 'F1', 'customer': 5, 'cost': 981}, {'facility': 'F1', 'customer': 6, 'cost': 37}, {'facility': 'F1', 'customer': 7, 'cost': 186}, {'facility': 'F2', 'customer': 0, 'cost': 136}, {'facility': 'F2', 'customer': 1, 'cost': 553}, {'facility': 'F2', 'customer': 2, 'cost': 462}, {'facility': 'F2', 'customer': 3, 'cost': 513}, {'facility': 'F2', 'customer': 4, 'cost': 578}, {'facility': 'F2', 'customer': 5, 'cost': 862}, {'facility': 'F2', 'customer': 6, 'cost': 352}, {'facility': 'F2', 'customer': 7, 'cost': 496}, {'facility': 'F3', 'customer': 0, 'cost': 905}, {'facility': 'F3', 'customer': 1, 'cost': 541}, {'facility': 'F3', 'customer': 2, 'cost': 908}, {'facility': 'F3', 'customer': 3, 'cost': 257}, {'facility': 'F3', 'customer': 4, 'cost': 605}, {'facility': 'F3', 'customer': 5, 'cost': 326}, {'facility': 'F3', 'customer': 6, 'cost': 729}, {'facility': 'F3', 'customer': 7, 'cost': 830}], 'objective': 7430.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",37,nl,0
UFLP,UFLP,"Many people in town use a subscription meal-kit, and the business needs to choose which packing locations to run and which location handles each order. Running a location costs a flat fee, and each order has a shipping cost depending on where it’s packed; the total cost to watch is simply the sum of the running fees for chosen locations plus the shipping costs for every assigned order. Every order has to be packed exactly once at an open location. The concrete instance info is below.

{
  ""num_packing_centers"": 2,
  ""num_orders"": 6,
  ""packing_centers"": [
    {
      ""packing_center_id"": ""F1"",
      ""opening_fee"": 3074
    },
    {
      ""packing_center_id"": ""F2"",
      ""opening_fee"": 4989
    }
  ],
  ""orders"": [
    {
      ""order_id"": 1
    },
    {
      ""order_id"": 2
    },
    {
      ""order_id"": 3
    },
    {
      ""order_id"": 4
    },
    {
      ""order_id"": 5
    },
    {
      ""order_id"": 6
    }
  ],
  ""shippings"": [
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 1,
      ""shipping_cost"": 629
    },
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 2,
      ""shipping_cost"": 217
    },
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 3,
      ""shipping_cost"": 881
    },
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 4,
      ""shipping_cost"": 421
    },
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 5,
      ""shipping_cost"": 950
    },
    {
      ""packing_center_id"": ""F1"",
      ""order_id"": 6,
      ""shipping_cost"": 780
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 1,
      ""shipping_cost"": 252
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 2,
      ""shipping_cost"": 593
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 3,
      ""shipping_cost"": 282
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 4,
      ""shipping_cost"": 160
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 5,
      ""shipping_cost"": 960
    },
    {
      ""packing_center_id"": ""F2"",
      ""order_id"": 6,
      ""shipping_cost"": 235
    }
  ]
}

Also, when you send back your answer, please follow this simple JSON layout so I can read it easily:

{
  ""solution"": {
    ""selected"": [<packing_site_to_open>, <packing_site_to_open>, ...],
    ""assignments"": [<chosen_packing_location>, <chosen_packing_location>, ...]
  }
}

This little sketch is just the shape I need: the selected list is where you say which packing locations we’ll run, and the assignments list says, for each order in the instance, which open packing location handles it. Think of it like a short form: ""selected"" = which sites we turn on, ""assignments"" = which site packs each order.

This is only a template of the expected shape β€” not the final answer itself.

Please be sure to use the identifiers exactly as they appear in the instance input β€” do not rename them or introduce new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [3074, 4989], 'connection_costs': [[629, 217, 881, 421, 950, 780], [252, 593, 282, 160, 960, 235]], 'objective': 6952.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",6952.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 3074}, {'id': 'F2', 'opening_cost': 4989}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 629}, {'facility': 'F1', 'customer': 2, 'cost': 217}, {'facility': 'F1', 'customer': 3, 'cost': 881}, {'facility': 'F1', 'customer': 4, 'cost': 421}, {'facility': 'F1', 'customer': 5, 'cost': 950}, {'facility': 'F1', 'customer': 6, 'cost': 780}, {'facility': 'F2', 'customer': 1, 'cost': 252}, {'facility': 'F2', 'customer': 2, 'cost': 593}, {'facility': 'F2', 'customer': 3, 'cost': 282}, {'facility': 'F2', 'customer': 4, 'cost': 160}, {'facility': 'F2', 'customer': 5, 'cost': 960}, {'facility': 'F2', 'customer': 6, 'cost': 235}], 'objective': 6952.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",38,json,1
UFLP,UFLP,"There’s a town shuttle plan on my desk: a list of possible stops with activation prices and a list of commuters with how far they’d have to travel to each stop. The trick is to decide which stops to switch on and then pair every commuter with one of the switched-on stops so the combined bill β€” paying for the stops we turned on plus the travel cost for everyone β€” ends up as small as it can be. Everyone must be assigned to a single active stop (no one gets skipped or sent to multiple stops), and active stops can handle unlimited riders. The concrete data appear below.

There are 3 stops and 6 commuters in this instance.

**Stops**
| stop_id | activation_cost |
|---|---|
| F1 | 1001 |
| F2 | 1781 |
| F3 | 1777 |

**Commuters**
| commuter_id |
|---|
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |

**Travel Cost**
| stop_id | commuter_id | travel_cost |
|---|---|---|
| F1 | 0 | 182 |
| F1 | 1 | 386 |
| F1 | 2 | 395 |
| F1 | 3 | 900 |
| F1 | 4 | 215 |
| F1 | 5 | 275 |
| F2 | 0 | 565 |
| F2 | 1 | 775 |
| F2 | 2 | 756 |
| F2 | 3 | 636 |
| F2 | 4 | 922 |
| F2 | 5 | 454 |
| F3 | 0 | 933 |
| F3 | 1 | 824 |
| F3 | 2 | 691 |
| F3 | 3 | 619 |
| F3 | 4 | 222 |
| F3 | 5 | 770 |

I'll give the result in a small, predictable JSON shape so it's easy to read β€” nothing fancy, just the two things we need to report.

{
  ""solution"": {
    ""selected"": [<stop_to_open>, <stop_to_open>, ...],
    ""assignments"": [<chosen_open_stop>, <chosen_open_stop>, ...]
  }
}

Pretty straightforward: ""selected"" is the list of stops we switch on (the activation purchases), and ""assignments"" tells which active stop each commuter uses, in the same order the commuters appear in the input. This is just the sketch of the expected shape, not the actual answer.

Please use identifiers exactly as they appear in the instance input β€” no renaming and no new labels. For example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1001, 1781, 1777], 'connection_costs': [[182, 386, 395, 900, 215, 275], [565, 775, 756, 636, 922, 454], [933, 824, 691, 619, 222, 770]], 'objective': 3354.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",3354.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 1001}, {'id': 'F2', 'opening_cost': 1781}, {'id': 'F3', 'opening_cost': 1777}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 182}, {'facility': 'F1', 'customer': 1, 'cost': 386}, {'facility': 'F1', 'customer': 2, 'cost': 395}, {'facility': 'F1', 'customer': 3, 'cost': 900}, {'facility': 'F1', 'customer': 4, 'cost': 215}, {'facility': 'F1', 'customer': 5, 'cost': 275}, {'facility': 'F2', 'customer': 0, 'cost': 565}, {'facility': 'F2', 'customer': 1, 'cost': 775}, {'facility': 'F2', 'customer': 2, 'cost': 756}, {'facility': 'F2', 'customer': 3, 'cost': 636}, {'facility': 'F2', 'customer': 4, 'cost': 922}, {'facility': 'F2', 'customer': 5, 'cost': 454}, {'facility': 'F3', 'customer': 0, 'cost': 933}, {'facility': 'F3', 'customer': 1, 'cost': 824}, {'facility': 'F3', 'customer': 2, 'cost': 691}, {'facility': 'F3', 'customer': 3, 'cost': 619}, {'facility': 'F3', 'customer': 4, 'cost': 222}, {'facility': 'F3', 'customer': 5, 'cost': 770}], 'objective': 3354.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",39,markdown_table,0
UFLP,UFLP,"Many people on the planning team are debating which neighborhood outlets to start and how to attach each block to a single open outlet. The choice is which outlets to pay to open (each has a setup price) and then making sure each block is linked to exactly one of those opened outlets β€” no block left unassigned and no double assignments β€” with each link costing a delivery or customer-travel amount. The best option is the one with the lowest combined expense: add up the setup costs for opened outlets and the travel/delivery costs for every block’s assignment. The instance details are presented below.

# num_outlets=3
# num_blocks=8
# OUTLETS
outlet_id,setup_fee
F1,2000
F2,2000
F3,2000
# BLOCKS
block_id
1
2
3
4
5
6
7
8
# DELIVERY_TRAVELS
outlet_id,block_id,delivery_travel_cost
F1,1,946
F1,2,845
F1,3,248
F1,4,505
F1,5,515
F1,6,678
F1,7,991
F1,8,569
F2,1,988
F2,2,34
F2,3,225
F2,4,956
F2,5,887
F2,6,708
F2,7,714
F2,8,593
F3,1,302
F3,2,622
F3,3,267
F3,4,578
F3,5,52
F3,6,719
F3,7,884
F3,8,765

Just so we're all on the same page about how to give the final pick-and-link info, please use this simple JSON layout when you reply. It's just the shape I need β€” nothing fancy.

{
  ""solution"": {
    ""selected"": [<outlet_to_open>, <outlet_to_open>, ...],
    ""assignments"": [<assigned_outlet>, <assigned_outlet>, ...]
  }
}

""selected"" is where you list the outlets you decide to open. ""assignments"" is a list, one entry per block, saying which opened outlet that block is attached to. Think of it like filling out a form: the first part names the open outlets, the second part maps every block to one of those outlets.

This JSON is only a sketch of the expected shape, not the actual solution. And please use the exact identifiers from the instance input β€” do not rename or invent labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[946, 845, 248, 505, 515, 678, 991, 569], [988, 34, 225, 956, 887, 708, 714, 593], [302, 622, 267, 578, 52, 719, 884, 765]], 'objective': 6189.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2, 2]}",6189.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}, {'id': 8}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 946}, {'facility': 'F1', 'customer': 2, 'cost': 845}, {'facility': 'F1', 'customer': 3, 'cost': 248}, {'facility': 'F1', 'customer': 4, 'cost': 505}, {'facility': 'F1', 'customer': 5, 'cost': 515}, {'facility': 'F1', 'customer': 6, 'cost': 678}, {'facility': 'F1', 'customer': 7, 'cost': 991}, {'facility': 'F1', 'customer': 8, 'cost': 569}, {'facility': 'F2', 'customer': 1, 'cost': 988}, {'facility': 'F2', 'customer': 2, 'cost': 34}, {'facility': 'F2', 'customer': 3, 'cost': 225}, {'facility': 'F2', 'customer': 4, 'cost': 956}, {'facility': 'F2', 'customer': 5, 'cost': 887}, {'facility': 'F2', 'customer': 6, 'cost': 708}, {'facility': 'F2', 'customer': 7, 'cost': 714}, {'facility': 'F2', 'customer': 8, 'cost': 593}, {'facility': 'F3', 'customer': 1, 'cost': 302}, {'facility': 'F3', 'customer': 2, 'cost': 622}, {'facility': 'F3', 'customer': 3, 'cost': 267}, {'facility': 'F3', 'customer': 4, 'cost': 578}, {'facility': 'F3', 'customer': 5, 'cost': 52}, {'facility': 'F3', 'customer': 6, 'cost': 719}, {'facility': 'F3', 'customer': 7, 'cost': 884}, {'facility': 'F3', 'customer': 8, 'cost': 765}], 'objective': 6189.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",40,csv,1
UFLP,UFLP,"Many people will be at the block party, and the organizers must choose which food truck locations to pay for and tell each attendee area which staffed location to use. Every staffed spot requires a rental fee, and every area adds up walking distance depending on which spot it’s sent to, so the combined totalβ€”stall fees plus total walking distanceβ€”is what the team wants to keep low. Each area needs exactly one assignment; no area can be unassigned or assigned to multiple spots. The specific data for spots, fees, and attendee areas are listed below.

There are 3 candidate food truck spots, 7 attendee areas, and the spot rental fees are 2000, 2000, 2000.
Spot F1 has a rental fee of 2000.
Spot F2 has a rental fee of 2000.
Spot F3 has a rental fee of 2000.
If attendee area A is assigned to spot F1, the walking distance is 415.
If attendee area B is assigned to spot F1, the walking distance is 259.
If attendee area C is assigned to spot F1, the walking distance is 818.
If attendee area D is assigned to spot F1, the walking distance is 61.
If attendee area E is assigned to spot F1, the walking distance is 372.
If attendee area F is assigned to spot F1, the walking distance is 657.
If attendee area G is assigned to spot F1, the walking distance is 875.
If attendee area A is assigned to spot F2, the walking distance is 896.
If attendee area B is assigned to spot F2, the walking distance is 250.
If attendee area C is assigned to spot F2, the walking distance is 867.
If attendee area D is assigned to spot F2, the walking distance is 369.
If attendee area E is assigned to spot F2, the walking distance is 79.
If attendee area F is assigned to spot F2, the walking distance is 549.
If attendee area G is assigned to spot F2, the walking distance is 963.
If attendee area A is assigned to spot F3, the walking distance is 698.
If attendee area B is assigned to spot F3, the walking distance is 858.
If attendee area C is assigned to spot F3, the walking distance is 889.
If attendee area D is assigned to spot F3, the walking distance is 557.
If attendee area E is assigned to spot F3, the walking distance is 825.
If attendee area F is assigned to spot F3, the walking distance is 873.
If attendee area G is assigned to spot F3, the walking distance is 514.
The organizers must use these details to decide which spots to staff and how to assign each area so the sum of rental fees plus walking distances is minimized.

You can just send the final choices in a small JSON snippet like this so it's easy to read and parse. Here's the shape I expect:

{
  ""solution"": {
    ""selected"": [<stall_to_rent>, <stall_to_rent>, ...],
    ""assignments"": [<assigned_spot>, <assigned_spot>, ...]
  }
}

""selected"" is the list of staffed spots you decide to pay for (the rental fees). ""assignments"" is, for each attendee area in the same order as the input, which staffed spot that area should use. Super casual: think of ""selected"" as the stalls you're booking, and ""assignments"" as the directions you'd hand out to each group.

This JSON is just a sketch of the expected shape β€” not the actual answer. Please make sure to use the exact identifiers from the instance input (do not rename them and don’t invent new labels).

- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[415, 259, 818, 61, 372, 657, 875], [896, 250, 867, 369, 79, 549, 963], [698, 858, 889, 557, 825, 873, 514]], 'objective': 5457.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0, 0]}",5457.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 415}, {'facility': 'F1', 'customer': 'B', 'cost': 259}, {'facility': 'F1', 'customer': 'C', 'cost': 818}, {'facility': 'F1', 'customer': 'D', 'cost': 61}, {'facility': 'F1', 'customer': 'E', 'cost': 372}, {'facility': 'F1', 'customer': 'F', 'cost': 657}, {'facility': 'F1', 'customer': 'G', 'cost': 875}, {'facility': 'F2', 'customer': 'A', 'cost': 896}, {'facility': 'F2', 'customer': 'B', 'cost': 250}, {'facility': 'F2', 'customer': 'C', 'cost': 867}, {'facility': 'F2', 'customer': 'D', 'cost': 369}, {'facility': 'F2', 'customer': 'E', 'cost': 79}, {'facility': 'F2', 'customer': 'F', 'cost': 549}, {'facility': 'F2', 'customer': 'G', 'cost': 963}, {'facility': 'F3', 'customer': 'A', 'cost': 698}, {'facility': 'F3', 'customer': 'B', 'cost': 858}, {'facility': 'F3', 'customer': 'C', 'cost': 889}, {'facility': 'F3', 'customer': 'D', 'cost': 557}, {'facility': 'F3', 'customer': 'E', 'cost': 825}, {'facility': 'F3', 'customer': 'F', 'cost': 873}, {'facility': 'F3', 'customer': 'G', 'cost': 514}], 'objective': 5457.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",41,nl,names
UFLP,UFLP,"Someone on the logistics team has to choose which cold depots to open and then point each clinic to exactly one of those open depots so vaccines and supplies can be sent. Every clinic must be tied to a single operating depot β€” no clinic gets left out and none is linked to a depot that’s closed. The way to tell which choice is preferable is to add the operating fees for the depots that are open and the transport cost for each clinic to its depot; the lower that sum, the better. The concrete numbers follow below.

Someone on the logistics team sees 3 candidate depots, 6 clinics, and the depot operating fees are 7095, 4049, 1987.
Someone on the logistics team can open depot F1 at a fixed operating fee of 7095.
Someone on the logistics team can open depot F2 at a fixed operating fee of 4049.
Someone on the logistics team can open depot F3 at a fixed operating fee of 1987.
Someone on the logistics team would assign clinic 0 to depot F1 with a transport cost of 329.
Someone on the logistics team would assign clinic 1 to depot F1 with a transport cost of 601.
Someone on the logistics team would assign clinic 2 to depot F1 with a transport cost of 48.
Someone on the logistics team would assign clinic 3 to depot F1 with a transport cost of 309.
Someone on the logistics team would assign clinic 4 to depot F1 with a transport cost of 439.
Someone on the logistics team would assign clinic 5 to depot F1 with a transport cost of 837.
Someone on the logistics team would assign clinic 0 to depot F2 with a transport cost of 514.
Someone on the logistics team would assign clinic 1 to depot F2 with a transport cost of 791.
Someone on the logistics team would assign clinic 2 to depot F2 with a transport cost of 23.
Someone on the logistics team would assign clinic 3 to depot F2 with a transport cost of 60.
Someone on the logistics team would assign clinic 4 to depot F2 with a transport cost of 139.
Someone on the logistics team would assign clinic 5 to depot F2 with a transport cost of 14.
Someone on the logistics team would assign clinic 0 to depot F3 with a transport cost of 558.
Someone on the logistics team would assign clinic 1 to depot F3 with a transport cost of 205.
Someone on the logistics team would assign clinic 2 to depot F3 with a transport cost of 336.
Someone on the logistics team would assign clinic 3 to depot F3 with a transport cost of 56.
Someone on the logistics team would assign clinic 4 to depot F3 with a transport cost of 301.
Someone on the logistics team would assign clinic 5 to depot F3 with a transport cost of 772.
Someone on the logistics team will use these numbers to sum opened depots' operating fees and assigned transport costs and choose the lowest total.

Also, when you send back the actual choices, please use this simple JSON layout so it’s easy to read and plug into our tools β€” here’s the shape we expect:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

Quick note on what those fields mean in plain terms: selected is the list of depot ids you decide to open; assignments lists, for each clinic (in the same order as the instance), the id of the open depot that clinic will use. Think of it like a short form: which depots open, and who goes where.

This JSON is just a sketch of the expected shape β€” not the actual answer. Please make sure all identifiers are used exactly as they appear in the instance input β€” no renaming and no new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [7095, 4049, 1987], 'connection_costs': [[329, 601, 48, 309, 439, 837], [514, 791, 23, 60, 139, 14], [558, 205, 336, 56, 301, 772]], 'objective': 4215.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2]}",4215.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 7095}, {'id': 'F2', 'opening_cost': 4049}, {'id': 'F3', 'opening_cost': 1987}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 329}, {'facility': 'F1', 'customer': 1, 'cost': 601}, {'facility': 'F1', 'customer': 2, 'cost': 48}, {'facility': 'F1', 'customer': 3, 'cost': 309}, {'facility': 'F1', 'customer': 4, 'cost': 439}, {'facility': 'F1', 'customer': 5, 'cost': 837}, {'facility': 'F2', 'customer': 0, 'cost': 514}, {'facility': 'F2', 'customer': 1, 'cost': 791}, {'facility': 'F2', 'customer': 2, 'cost': 23}, {'facility': 'F2', 'customer': 3, 'cost': 60}, {'facility': 'F2', 'customer': 4, 'cost': 139}, {'facility': 'F2', 'customer': 5, 'cost': 14}, {'facility': 'F3', 'customer': 0, 'cost': 558}, {'facility': 'F3', 'customer': 1, 'cost': 205}, {'facility': 'F3', 'customer': 2, 'cost': 336}, {'facility': 'F3', 'customer': 3, 'cost': 56}, {'facility': 'F3', 'customer': 4, 'cost': 301}, {'facility': 'F3', 'customer': 5, 'cost': 772}], 'objective': 4215.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",42,nl,0
UFLP,UFLP,"I run the distribution side of a retail network and need to pick which micro-warehouses to switch on and which hub will serve each shop. The idea is simple: every shop has to be tied to oneβ€”and only oneβ€”open hub, and the total bill is the sum of the opening fees for the hubs chosen plus all the shipment costs from hubs to shops. A plan is better when that combined bill is smaller, so the challenge is to turn on a smart set of hubs and link each shop to one of them without leaving any shop out or giving any shop two homes. The concrete details (locations, fees and shipping costs) are shown below.

{
  ""total_candidate_hubs"": 3,
  ""total_shops"": 7,
  ""hubs"": [
    {
      ""hub_id"": ""F1"",
      ""activation_fee"": 1000
    },
    {
      ""hub_id"": ""F2"",
      ""activation_fee"": 1000
    },
    {
      ""hub_id"": ""F3"",
      ""activation_fee"": 1000
    }
  ],
  ""shops"": [
    {
      ""shop_id"": 0
    },
    {
      ""shop_id"": 1
    },
    {
      ""shop_id"": 2
    },
    {
      ""shop_id"": 3
    },
    {
      ""shop_id"": 4
    },
    {
      ""shop_id"": 5
    },
    {
      ""shop_id"": 6
    }
  ],
  ""shipments"": [
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 0,
      ""shipment_cost"": 293
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 1,
      ""shipment_cost"": 415
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 2,
      ""shipment_cost"": 518
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 3,
      ""shipment_cost"": 514
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 4,
      ""shipment_cost"": 794
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 5,
      ""shipment_cost"": 484
    },
    {
      ""hub_id"": ""F1"",
      ""shop_id"": 6,
      ""shipment_cost"": 282
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 0,
      ""shipment_cost"": 512
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 1,
      ""shipment_cost"": 361
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 2,
      ""shipment_cost"": 433
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 3,
      ""shipment_cost"": 447
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 4,
      ""shipment_cost"": 127
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 5,
      ""shipment_cost"": 890
    },
    {
      ""hub_id"": ""F2"",
      ""shop_id"": 6,
      ""shipment_cost"": 689
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 0,
      ""shipment_cost"": 553
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 1,
      ""shipment_cost"": 982
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 2,
      ""shipment_cost"": 641
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 3,
      ""shipment_cost"": 842
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 4,
      ""shipment_cost"": 897
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 5,
      ""shipment_cost"": 260
    },
    {
      ""hub_id"": ""F3"",
      ""shop_id"": 6,
      ""shipment_cost"": 715
    }
  ]
}

Also, when you hand back the plan, please use this little JSON layout so I can read it automatically β€” nothing fancy, just two lists: which micro-warehouses you flip on, and which open micro-warehouse serves each shop.

{
  ""solution"": {
    ""selected"": [<microwarehouse_to_open>, <microwarehouse_to_open>, ...],
    ""assignments"": [<chosen_open_microwarehouse>, <chosen_open_microwarehouse>, ...]
  }
}

Think of ""selected"" as the checklist of micro-warehouses you plan to switch on (their IDs), and ""assignments"" as a one-to-one list that says, in the same order as the shops in the instance, which open micro-warehouse will serve that shop. This JSON is just a sketch of the shape I need β€” not the actual answer.

Please make sure you use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [1000, 1000, 1000], 'connection_costs': [[293, 415, 518, 514, 794, 484, 282], [512, 361, 433, 447, 127, 890, 689], [553, 982, 641, 842, 897, 260, 715]], 'objective': 4300.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0, 0]}",4300.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 293}, {'facility': 'F1', 'customer': 1, 'cost': 415}, {'facility': 'F1', 'customer': 2, 'cost': 518}, {'facility': 'F1', 'customer': 3, 'cost': 514}, {'facility': 'F1', 'customer': 4, 'cost': 794}, {'facility': 'F1', 'customer': 5, 'cost': 484}, {'facility': 'F1', 'customer': 6, 'cost': 282}, {'facility': 'F2', 'customer': 0, 'cost': 512}, {'facility': 'F2', 'customer': 1, 'cost': 361}, {'facility': 'F2', 'customer': 2, 'cost': 433}, {'facility': 'F2', 'customer': 3, 'cost': 447}, {'facility': 'F2', 'customer': 4, 'cost': 127}, {'facility': 'F2', 'customer': 5, 'cost': 890}, {'facility': 'F2', 'customer': 6, 'cost': 689}, {'facility': 'F3', 'customer': 0, 'cost': 553}, {'facility': 'F3', 'customer': 1, 'cost': 982}, {'facility': 'F3', 'customer': 2, 'cost': 641}, {'facility': 'F3', 'customer': 3, 'cost': 842}, {'facility': 'F3', 'customer': 4, 'cost': 897}, {'facility': 'F3', 'customer': 5, 'cost': 260}, {'facility': 'F3', 'customer': 6, 'cost': 715}], 'objective': 4300.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",43,json,0
UFLP,UFLP,"I’m lining up which library-style book branches the district should actually open and then signing each neighborhood school up with one of those open branches. The idea is simple: every branch costs money to start, and each school has a delivery or pickup cost to be served from a particular branch, so the total bill is the sum of the branch opening fees plus all the delivery/pickup charges. The job is to pick which branches to open and make sure every school is assigned to exactly one open branch (no school left unassigned and no school registered to two branches), while keeping that total bill as small as possible. The concrete entriesβ€”branch options, opening fees, and school delivery costsβ€”are listed below.

{
  ""num_branches"": 3,
  ""num_schools"": 7,
  ""branchs"": [
    {
      ""branch_id"": ""F1"",
      ""branch_opening_fee"": 2090
    },
    {
      ""branch_id"": ""F2"",
      ""branch_opening_fee"": 3751
    },
    {
      ""branch_id"": ""F3"",
      ""branch_opening_fee"": 6554
    }
  ],
  ""schools"": [
    {
      ""school_id"": ""A""
    },
    {
      ""school_id"": ""B""
    },
    {
      ""school_id"": ""C""
    },
    {
      ""school_id"": ""D""
    },
    {
      ""school_id"": ""E""
    },
    {
      ""school_id"": ""F""
    },
    {
      ""school_id"": ""G""
    }
  ],
  ""deliverys"": [
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""A"",
      ""delivery_cost"": 290
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""B"",
      ""delivery_cost"": 434
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""C"",
      ""delivery_cost"": 680
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""D"",
      ""delivery_cost"": 231
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""E"",
      ""delivery_cost"": 448
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""F"",
      ""delivery_cost"": 783
    },
    {
      ""branch_id"": ""F1"",
      ""school_id"": ""G"",
      ""delivery_cost"": 133
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""A"",
      ""delivery_cost"": 337
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""B"",
      ""delivery_cost"": 961
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""C"",
      ""delivery_cost"": 369
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""D"",
      ""delivery_cost"": 691
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""E"",
      ""delivery_cost"": 560
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""F"",
      ""delivery_cost"": 470
    },
    {
      ""branch_id"": ""F2"",
      ""school_id"": ""G"",
      ""delivery_cost"": 772
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""A"",
      ""delivery_cost"": 903
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""B"",
      ""delivery_cost"": 463
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""C"",
      ""delivery_cost"": 756
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""D"",
      ""delivery_cost"": 901
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""E"",
      ""delivery_cost"": 187
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""F"",
      ""delivery_cost"": 43
    },
    {
      ""branch_id"": ""F3"",
      ""school_id"": ""G"",
      ""delivery_cost"": 284
    }
  ]
}

Also, when you send the solution back, just stick to this little JSON shape so it’s easy to read and parse:

{
  ""solution"": {
    ""selected"": [<branch_to_open>, <branch_to_open>, ...],
    ""assignments"": [<chosen_open_branch>, <chosen_open_branch>, ...]
  }
}

This is just a sketch of the shape I’m expecting β€” nothing filled in yet. ""selected"" is the list of branches the district will open, and ""assignments"" is a list (in the same order as the schools were given in the instance) saying which opened branch each school signs up with.

Please note: all identifiers in your actual answer must match the instance input exactly β€” don’t rename them and don’t invent new labels. For example: Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.","{'opening_costs': [2090, 3751, 6554], 'connection_costs': [[290, 434, 680, 231, 448, 783, 133], [337, 961, 369, 691, 560, 470, 772], [903, 463, 756, 901, 187, 43, 284]], 'objective': 5089.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0, 0]}",5089.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 2090}, {'id': 'F2', 'opening_cost': 3751}, {'id': 'F3', 'opening_cost': 6554}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 290}, {'facility': 'F1', 'customer': 'B', 'cost': 434}, {'facility': 'F1', 'customer': 'C', 'cost': 680}, {'facility': 'F1', 'customer': 'D', 'cost': 231}, {'facility': 'F1', 'customer': 'E', 'cost': 448}, {'facility': 'F1', 'customer': 'F', 'cost': 783}, {'facility': 'F1', 'customer': 'G', 'cost': 133}, {'facility': 'F2', 'customer': 'A', 'cost': 337}, {'facility': 'F2', 'customer': 'B', 'cost': 961}, {'facility': 'F2', 'customer': 'C', 'cost': 369}, {'facility': 'F2', 'customer': 'D', 'cost': 691}, {'facility': 'F2', 'customer': 'E', 'cost': 560}, {'facility': 'F2', 'customer': 'F', 'cost': 470}, {'facility': 'F2', 'customer': 'G', 'cost': 772}, {'facility': 'F3', 'customer': 'A', 'cost': 903}, {'facility': 'F3', 'customer': 'B', 'cost': 463}, {'facility': 'F3', 'customer': 'C', 'cost': 756}, {'facility': 'F3', 'customer': 'D', 'cost': 901}, {'facility': 'F3', 'customer': 'E', 'cost': 187}, {'facility': 'F3', 'customer': 'F', 'cost': 43}, {'facility': 'F3', 'customer': 'G', 'cost': 284}], 'objective': 5089.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",44,json,names
UFLP,UFLP,"Recently the food bank had to tighten the budget, so the director needed to decide which distribution points to keep open. Each candidate point has a running fee, and getting food to a community group from a point costs volunteer time or transport money. The task is to pick the set of points to operate and assign each group to exactly one of those points so that the total expense β€” the sum of the operating fees plus every group’s delivery cost β€” is as small as possible; every group must be assigned once and sites can serve any number of groups. The detailed list of sites, their operating costs, and group-by-group delivery costs is shown below.

# num_distribution_points=3
# num_community_groups=8
# DISTRIBUTION_POINTS
distribution_point_id,running_fee
F1,2000
F2,2000
F3,2000
# COMMUNITY_GROUPS
community_group_id
1
2
3
4
5
6
7
8
# DELIVERYS
distribution_point_id,community_group_id,delivery_cost
F1,1,728
F1,2,457
F1,3,245
F1,4,594
F1,5,923
F1,6,617
F1,7,679
F1,8,983
F2,1,317
F2,2,883
F2,3,858
F2,4,733
F2,5,162
F2,6,136
F2,7,711
F2,8,12
F3,1,792
F3,2,385
F3,3,647
F3,4,469
F3,5,909
F3,6,205
F3,7,862
F3,8,684

Oh, and when you send the decision back, please follow this little JSON layout so it's easy to read and process. For our story it might look like this:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<site_assigned>, <site_assigned>, ...]
  }
}

""selected"" is where you list the site IDs you'll keep operating (those are the sites we pay the running fee for). ""assignments"" gives, in the same order as the community groups appear in the instance, which open site each group is assigned to. Think of it as a simple form β€” a list of open sites and then a list that points each group to one of those sites.

This JSON is just the sketch of the shape I expect, not the actual solution.

Please make sure to use the exact identifiers from the instance input β€” do not rename them or create new labels.
- for example: ""Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".""","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[728, 457, 245, 594, 923, 617, 679, 983], [317, 883, 858, 733, 162, 136, 711, 12], [792, 385, 647, 469, 909, 205, 862, 684]], 'objective': 5812.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1, 1, 1]}",5812.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}, {'id': 8}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 728}, {'facility': 'F1', 'customer': 2, 'cost': 457}, {'facility': 'F1', 'customer': 3, 'cost': 245}, {'facility': 'F1', 'customer': 4, 'cost': 594}, {'facility': 'F1', 'customer': 5, 'cost': 923}, {'facility': 'F1', 'customer': 6, 'cost': 617}, {'facility': 'F1', 'customer': 7, 'cost': 679}, {'facility': 'F1', 'customer': 8, 'cost': 983}, {'facility': 'F2', 'customer': 1, 'cost': 317}, {'facility': 'F2', 'customer': 2, 'cost': 883}, {'facility': 'F2', 'customer': 3, 'cost': 858}, {'facility': 'F2', 'customer': 4, 'cost': 733}, {'facility': 'F2', 'customer': 5, 'cost': 162}, {'facility': 'F2', 'customer': 6, 'cost': 136}, {'facility': 'F2', 'customer': 7, 'cost': 711}, {'facility': 'F2', 'customer': 8, 'cost': 12}, {'facility': 'F3', 'customer': 1, 'cost': 792}, {'facility': 'F3', 'customer': 2, 'cost': 385}, {'facility': 'F3', 'customer': 3, 'cost': 647}, {'facility': 'F3', 'customer': 4, 'cost': 469}, {'facility': 'F3', 'customer': 5, 'cost': 909}, {'facility': 'F3', 'customer': 6, 'cost': 205}, {'facility': 'F3', 'customer': 7, 'cost': 862}, {'facility': 'F3', 'customer': 8, 'cost': 684}], 'objective': 5812.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",45,csv,1
UFLP,UFLP,"Many neighborhoods are waiting for pop-up clinic visits, so the coordinator has to decide which health posts to staff and which staffed post each residential cluster will use. The rule is straightforward: each cluster must go to exactly one staffed post (not zero, not two), and any staffed post can take unlimited clusters. The aim is to keep overall expenses as low as possible by adding up the staffing costs for the posts that are opened and the travel cost for all patients to reach their assigned post β€” lower total is better. The concrete details and numbers are provided below.

{
  ""num_posts"": 2,
  ""num_residential_clusters"": 6,
  ""posts"": [
    {
      ""post_id"": ""F1"",
      ""staffing_cost"": 3757
    },
    {
      ""post_id"": ""F2"",
      ""staffing_cost"": 3209
    }
  ],
  ""clusters"": [
    {
      ""cluster_id"": 1
    },
    {
      ""cluster_id"": 2
    },
    {
      ""cluster_id"": 3
    },
    {
      ""cluster_id"": 4
    },
    {
      ""cluster_id"": 5
    },
    {
      ""cluster_id"": 6
    }
  ],
  ""travels"": [
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 1,
      ""travel_cost"": 569
    },
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 2,
      ""travel_cost"": 311
    },
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 3,
      ""travel_cost"": 937
    },
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 4,
      ""travel_cost"": 235
    },
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 5,
      ""travel_cost"": 798
    },
    {
      ""post_id"": ""F1"",
      ""cluster_id"": 6,
      ""travel_cost"": 391
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 1,
      ""travel_cost"": 412
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 2,
      ""travel_cost"": 180
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 3,
      ""travel_cost"": 152
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 4,
      ""travel_cost"": 479
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 5,
      ""travel_cost"": 343
    },
    {
      ""post_id"": ""F2"",
      ""cluster_id"": 6,
      ""travel_cost"": 15
    }
  ]
}

Oh, and when you send the actual plan back, please stick to this JSON layout so it's easy to parse:

{
  ""solution"": {
    ""selected"": [<post_to_staff>, <post_to_staff>, ...],
    ""assignments"": [<chosen_staffed_post>, <chosen_staffed_post>, ...]
  }
}

Think of ""selected"" as the list of posts you'll staff, and ""assignments"" as which staffed post each residential cluster will use (one entry per cluster, in the same order as the instance's cluster list). This JSON is just a sketch of the shape I expect, not the final answer.

Please also be sure to use the exact identifiers from the instance input β€” do not rename them or invent new labels. Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'opening_costs': [3757, 3209], 'connection_costs': [[569, 311, 937, 235, 798, 391], [412, 180, 152, 479, 343, 15]], 'objective': 4790.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1]}",4790.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 3757}, {'id': 'F2', 'opening_cost': 3209}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 569}, {'facility': 'F1', 'customer': 2, 'cost': 311}, {'facility': 'F1', 'customer': 3, 'cost': 937}, {'facility': 'F1', 'customer': 4, 'cost': 235}, {'facility': 'F1', 'customer': 5, 'cost': 798}, {'facility': 'F1', 'customer': 6, 'cost': 391}, {'facility': 'F2', 'customer': 1, 'cost': 412}, {'facility': 'F2', 'customer': 2, 'cost': 180}, {'facility': 'F2', 'customer': 3, 'cost': 152}, {'facility': 'F2', 'customer': 4, 'cost': 479}, {'facility': 'F2', 'customer': 5, 'cost': 343}, {'facility': 'F2', 'customer': 6, 'cost': 15}], 'objective': 4790.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",46,json,1
UFLP,UFLP,"There’s a practical problem at the co-op: some central pickup sites could stay active while others could be shut down, and each decision affects how far farmers have to travel. The task is to pick a set of sites to keep running (each incurs its own upkeep cost) and then attach each farm to one of those running sites. The measure of a good plan is the total spending β€” the sum of the maintenance bills for the active sites plus all farmers’ delivery costs to their chosen site β€” and that total should be as small as possible. Each farm must be tied to exactly one active site, no exceptions or duplicates. The concrete setup and numbers follow below.

# num_pickup_sites=3
# num_farms=8
# SITES
site_id,site_upkeep_cost
F1,2000
F2,2000
F3,2000
# FARMS
farm_id
0
1
2
3
4
5
6
7
# DELIVERYS
site_id,farm_id,delivery_cost
F1,0,289
F1,1,161
F1,2,926
F1,3,561
F1,4,616
F1,5,480
F1,6,727
F1,7,28
F2,0,498
F2,1,112
F2,2,793
F2,3,128
F2,4,559
F2,5,812
F2,6,167
F2,7,193
F3,0,783
F3,1,807
F3,2,169
F3,3,176
F3,4,662
F3,5,906
F3,6,764
F3,7,427

Also, to keep things simple, please give the final plan in a tiny JSON sketch like this:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

Here ""selected"" is the list of sites you choose to keep running, and ""assignments"" lists, for each farm, the site it's assigned to (use the same order the instance uses for farms). Think of it like filling out a form: first pick which sites stay active, then say which active site each farm goes to.

This is just the expected shape β€” a sketch to show the layout, not the filled-in answer.

Please make sure to use the exact identifiers from the instance input with no renaming or invented labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000, 2000], 'connection_costs': [[289, 161, 926, 561, 616, 480, 727, 28], [498, 112, 793, 128, 559, 812, 167, 193], [783, 807, 169, 176, 662, 906, 764, 427]], 'objective': 5262.0}","{'open_facilities': [1], 'assignments': [1, 1, 1, 1, 1, 1, 1, 1]}",5262.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 8, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}, {'id': 'F3', 'opening_cost': 2000}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}, {'id': 7}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 289}, {'facility': 'F1', 'customer': 1, 'cost': 161}, {'facility': 'F1', 'customer': 2, 'cost': 926}, {'facility': 'F1', 'customer': 3, 'cost': 561}, {'facility': 'F1', 'customer': 4, 'cost': 616}, {'facility': 'F1', 'customer': 5, 'cost': 480}, {'facility': 'F1', 'customer': 6, 'cost': 727}, {'facility': 'F1', 'customer': 7, 'cost': 28}, {'facility': 'F2', 'customer': 0, 'cost': 498}, {'facility': 'F2', 'customer': 1, 'cost': 112}, {'facility': 'F2', 'customer': 2, 'cost': 793}, {'facility': 'F2', 'customer': 3, 'cost': 128}, {'facility': 'F2', 'customer': 4, 'cost': 559}, {'facility': 'F2', 'customer': 5, 'cost': 812}, {'facility': 'F2', 'customer': 6, 'cost': 167}, {'facility': 'F2', 'customer': 7, 'cost': 193}, {'facility': 'F3', 'customer': 0, 'cost': 783}, {'facility': 'F3', 'customer': 1, 'cost': 807}, {'facility': 'F3', 'customer': 2, 'cost': 169}, {'facility': 'F3', 'customer': 3, 'cost': 176}, {'facility': 'F3', 'customer': 4, 'cost': 662}, {'facility': 'F3', 'customer': 5, 'cost': 906}, {'facility': 'F3', 'customer': 6, 'cost': 764}, {'facility': 'F3', 'customer': 7, 'cost': 427}], 'objective': 5262.0}","{'selected': ['F2'], 'assignments': ['F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2', 'F2']}",47,csv,0
UFLP,UFLP,"There’s a fleet logistics puzzle: the company needs to decide which charging sites to enable and then send each parking zone’s vehicles to a single enabled site. Enabling a site isn’t free, and drivers spend time and fuel getting cars from their zones to the assigned site, so the total expense is the sum of the enabling fees plus all those repositioning costs β€” the aim is to keep that combined expense as low as possible. Each zone needs one and only one destination hub, and a hub can accept unlimited zones. The concrete instance details are listed below.

For this instance there are 2 candidate charging hubs, 6 parking zones, and the hub enabling fees are 2000, 2000.
Candidate hub F1 has an enabling fee of 2000.
Candidate hub F2 has an enabling fee of 2000.
Assigning parking zone 1 to hub F1 incurs a repositioning cost of 349.
Assigning parking zone 2 to hub F1 incurs a repositioning cost of 63.
Assigning parking zone 3 to hub F1 incurs a repositioning cost of 624.
Assigning parking zone 4 to hub F1 incurs a repositioning cost of 138.
Assigning parking zone 5 to hub F1 incurs a repositioning cost of 405.
Assigning parking zone 6 to hub F1 incurs a repositioning cost of 434.
Assigning parking zone 1 to hub F2 incurs a repositioning cost of 951.
Assigning parking zone 2 to hub F2 incurs a repositioning cost of 263.
Assigning parking zone 3 to hub F2 incurs a repositioning cost of 853.
Assigning parking zone 4 to hub F2 incurs a repositioning cost of 5.
Assigning parking zone 5 to hub F2 incurs a repositioning cost of 462.
Assigning parking zone 6 to hub F2 incurs a repositioning cost of 44.
The aim is to keep the combined enabling fees and repositioning costs as low as possible when choosing which hubs to enable and how to assign each zone.

Oh, and when you send the answer back, just follow this simple JSON shape so I can read it easily:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<assigned_site>, <assigned_site>, ...]
  }
}

This only sketches the format I'm expecting: ""selected"" is where you list the sites you decide to enable, and ""assignments"" is a list (one entry per parking zone, in the same order as the instance) saying which enabled site that zone uses. Pretty informal β€” think of it like filling out a short form, not a full report.

Please use the exact identifiers from the instance input when you fill those placeholders β€” do not rename them or invent new labels.
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [2000, 2000], 'connection_costs': [[349, 63, 624, 138, 405, 434], [951, 263, 853, 5, 462, 44]], 'objective': 4013.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0]}",4013.0,"{'problem_type': 'UFLP', 'num_facilities': 2, 'num_customers': 6, 'facilities': [{'id': 'F1', 'opening_cost': 2000}, {'id': 'F2', 'opening_cost': 2000}], 'customers': [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 1, 'cost': 349}, {'facility': 'F1', 'customer': 2, 'cost': 63}, {'facility': 'F1', 'customer': 3, 'cost': 624}, {'facility': 'F1', 'customer': 4, 'cost': 138}, {'facility': 'F1', 'customer': 5, 'cost': 405}, {'facility': 'F1', 'customer': 6, 'cost': 434}, {'facility': 'F2', 'customer': 1, 'cost': 951}, {'facility': 'F2', 'customer': 2, 'cost': 263}, {'facility': 'F2', 'customer': 3, 'cost': 853}, {'facility': 'F2', 'customer': 4, 'cost': 5}, {'facility': 'F2', 'customer': 5, 'cost': 462}, {'facility': 'F2', 'customer': 6, 'cost': 44}], 'objective': 4013.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",48,nl,1
UFLP,UFLP,"In our town’s relief planning, the team will choose which clothing distribution centers to activate and then allocate each shelter to one of those active centers. It’s important that every shelter is assigned to exactly one open center β€” no shelter can be left out or be assigned to multiple centers. The goal is to minimize the total outlay: sum the opening costs of the centers that are opened and the transportation costs for all shelter assignments. The concrete numbers and locations are listed below.

There are 3 candidate centers and 7 shelters; the opening costs for the centers are 1000, 1000, 1000.
Candidate center F1 has an opening cost of 1000.
Candidate center F2 has an opening cost of 1000.
Candidate center F3 has an opening cost of 1000.
If shelter A is served from center F1, the transportation cost is 146.
If shelter B is served from center F1, the transportation cost is 295.
If shelter C is served from center F1, the transportation cost is 693.
If shelter D is served from center F1, the transportation cost is 766.
If shelter E is served from center F1, the transportation cost is 99.
If shelter F is served from center F1, the transportation cost is 47.
If shelter G is served from center F1, the transportation cost is 303.
If shelter A is served from center F2, the transportation cost is 690.
If shelter B is served from center F2, the transportation cost is 707.
If shelter C is served from center F2, the transportation cost is 915.
If shelter D is served from center F2, the transportation cost is 275.
If shelter E is served from center F2, the transportation cost is 668.
If shelter F is served from center F2, the transportation cost is 130.
If shelter G is served from center F2, the transportation cost is 106.
If shelter A is served from center F3, the transportation cost is 357.
If shelter B is served from center F3, the transportation cost is 276.
If shelter C is served from center F3, the transportation cost is 63.
If shelter D is served from center F3, the transportation cost is 953.
If shelter E is served from center F3, the transportation cost is 566.
If shelter F is served from center F3, the transportation cost is 467.
If shelter G is served from center F3, the transportation cost is 307.
The team will use these entries to evaluate and then minimize the combined opening and transportation costs.

Also, please send your answer using a simple JSON shape so it's easy to read and check. Here's the structure I expect:

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_open_site>, <chosen_open_site>, ...]
  }
}

""selected"" is where you list which distribution centers you decide to activate. ""assignments"" is a list that, for each shelter in order, names the open center that shelter will use. Think of the JSON as a little form β€” a sketch of the expected shape, not the actual final choices.

One more thing: use the exact identifiers from the instance input β€” do not rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1000, 1000, 1000], 'connection_costs': [[146, 295, 693, 766, 99, 47, 303], [690, 707, 915, 275, 668, 130, 106], [357, 276, 63, 953, 566, 467, 307]], 'objective': 3349.0}","{'open_facilities': [0], 'assignments': [0, 0, 0, 0, 0, 0, 0]}",3349.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1000}, {'id': 'F2', 'opening_cost': 1000}, {'id': 'F3', 'opening_cost': 1000}], 'customers': [{'id': 'A'}, {'id': 'B'}, {'id': 'C'}, {'id': 'D'}, {'id': 'E'}, {'id': 'F'}, {'id': 'G'}], 'connection_costs': [{'facility': 'F1', 'customer': 'A', 'cost': 146}, {'facility': 'F1', 'customer': 'B', 'cost': 295}, {'facility': 'F1', 'customer': 'C', 'cost': 693}, {'facility': 'F1', 'customer': 'D', 'cost': 766}, {'facility': 'F1', 'customer': 'E', 'cost': 99}, {'facility': 'F1', 'customer': 'F', 'cost': 47}, {'facility': 'F1', 'customer': 'G', 'cost': 303}, {'facility': 'F2', 'customer': 'A', 'cost': 690}, {'facility': 'F2', 'customer': 'B', 'cost': 707}, {'facility': 'F2', 'customer': 'C', 'cost': 915}, {'facility': 'F2', 'customer': 'D', 'cost': 275}, {'facility': 'F2', 'customer': 'E', 'cost': 668}, {'facility': 'F2', 'customer': 'F', 'cost': 130}, {'facility': 'F2', 'customer': 'G', 'cost': 106}, {'facility': 'F3', 'customer': 'A', 'cost': 357}, {'facility': 'F3', 'customer': 'B', 'cost': 276}, {'facility': 'F3', 'customer': 'C', 'cost': 63}, {'facility': 'F3', 'customer': 'D', 'cost': 953}, {'facility': 'F3', 'customer': 'E', 'cost': 566}, {'facility': 'F3', 'customer': 'F', 'cost': 467}, {'facility': 'F3', 'customer': 'G', 'cost': 307}], 'objective': 3349.0}","{'selected': ['F1'], 'assignments': ['F1', 'F1', 'F1', 'F1', 'F1', 'F1', 'F1']}",49,nl,names
UFLP,UFLP,"I work with a city planner who's trying to figure out which public lockers to put around town and which neighborhood of commuters should use each installed locker. The idea is simple: every locker that gets installed costs money, and every commuter who has to detour to reach their assigned locker pays a little extra in time or distance. The planner needs to pick which lockers to install and then give each commuter catchment exactly one of those installed lockers to use β€” nothing left unassigned, and no catchment sent to more than one locker. In the end, the tally is the sum of the installation fees for the chosen lockers plus all the detour costs for commuters, and the plan that keeps that total as small as possible is the one they want. Concrete details about candidate locations, fees, and detour distances are shown below.

There are 3 candidate locker locations and 7 commuter catchments, with installation fees listed as 1925, 1348, 1194.
Candidate locker F1 would cost 1925 to install.
Candidate locker F2 would cost 1348 to install.
Candidate locker F3 would cost 1194 to install.
If catchment 0 is assigned to locker F1, commuters incur a detour cost of 826.
If catchment 1 is assigned to locker F1, commuters incur a detour cost of 363.
If catchment 2 is assigned to locker F1, commuters incur a detour cost of 974.
If catchment 3 is assigned to locker F1, commuters incur a detour cost of 636.
If catchment 4 is assigned to locker F1, commuters incur a detour cost of 719.
If catchment 5 is assigned to locker F1, commuters incur a detour cost of 499.
If catchment 6 is assigned to locker F1, commuters incur a detour cost of 769.
If catchment 0 is assigned to locker F2, commuters incur a detour cost of 688.
If catchment 1 is assigned to locker F2, commuters incur a detour cost of 697.
If catchment 2 is assigned to locker F2, commuters incur a detour cost of 736.
If catchment 3 is assigned to locker F2, commuters incur a detour cost of 269.
If catchment 4 is assigned to locker F2, commuters incur a detour cost of 113.
If catchment 5 is assigned to locker F2, commuters incur a detour cost of 321.
If catchment 6 is assigned to locker F2, commuters incur a detour cost of 362.
If catchment 0 is assigned to locker F3, commuters incur a detour cost of 196.
If catchment 1 is assigned to locker F3, commuters incur a detour cost of 210.
If catchment 2 is assigned to locker F3, commuters incur a detour cost of 297.
If catchment 3 is assigned to locker F3, commuters incur a detour cost of 922.
If catchment 4 is assigned to locker F3, commuters incur a detour cost of 390.
If catchment 5 is assigned to locker F3, commuters incur a detour cost of 530.
If catchment 6 is assigned to locker F3, commuters incur a detour cost of 462.
The planner will choose which lockers to install and assign each catchment to exactly one chosen locker so the total of installation fees and detour costs is minimized.

Oh, and to make it easy for me to read your plan, please send the final pick and the commuter assignments in this little JSON shape β€” nothing fancy, just a consistent form I can parse.

{
  ""solution"": {
    ""selected"": [<site_to_open>, <site_to_open>, ...],
    ""assignments"": [<chosen_site>, <chosen_site>, ...]
  }
}

Pretty simple: ""selected"" is the list of locker sites you want installed, and ""assignments"" lists, in the same order as the commuter catchments are given in the instance, which installed site each catchment should use. Think of it like a short form β€” not the real answer, just the shape I expect.

Please make sure to use the exact identifiers from the instance input β€” don't rename them or invent new labels. 
- for example: ""Valid identifiers look like plain numbers such as β€œ1” or β€œ23”, single capital letters like β€œA” or β€œB”, or a capital letter followed by digits like β€œA1” or β€œX7”.""","{'opening_costs': [1925, 1348, 1194], 'connection_costs': [[826, 363, 974, 636, 719, 499, 769], [688, 697, 736, 269, 113, 321, 362], [196, 210, 297, 922, 390, 530, 462]], 'objective': 4201.0}","{'open_facilities': [2], 'assignments': [2, 2, 2, 2, 2, 2, 2]}",4201.0,"{'problem_type': 'UFLP', 'num_facilities': 3, 'num_customers': 7, 'facilities': [{'id': 'F1', 'opening_cost': 1925}, {'id': 'F2', 'opening_cost': 1348}, {'id': 'F3', 'opening_cost': 1194}], 'customers': [{'id': 0}, {'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}, {'id': 6}], 'connection_costs': [{'facility': 'F1', 'customer': 0, 'cost': 826}, {'facility': 'F1', 'customer': 1, 'cost': 363}, {'facility': 'F1', 'customer': 2, 'cost': 974}, {'facility': 'F1', 'customer': 3, 'cost': 636}, {'facility': 'F1', 'customer': 4, 'cost': 719}, {'facility': 'F1', 'customer': 5, 'cost': 499}, {'facility': 'F1', 'customer': 6, 'cost': 769}, {'facility': 'F2', 'customer': 0, 'cost': 688}, {'facility': 'F2', 'customer': 1, 'cost': 697}, {'facility': 'F2', 'customer': 2, 'cost': 736}, {'facility': 'F2', 'customer': 3, 'cost': 269}, {'facility': 'F2', 'customer': 4, 'cost': 113}, {'facility': 'F2', 'customer': 5, 'cost': 321}, {'facility': 'F2', 'customer': 6, 'cost': 362}, {'facility': 'F3', 'customer': 0, 'cost': 196}, {'facility': 'F3', 'customer': 1, 'cost': 210}, {'facility': 'F3', 'customer': 2, 'cost': 297}, {'facility': 'F3', 'customer': 3, 'cost': 922}, {'facility': 'F3', 'customer': 4, 'cost': 390}, {'facility': 'F3', 'customer': 5, 'cost': 530}, {'facility': 'F3', 'customer': 6, 'cost': 462}], 'objective': 4201.0}","{'selected': ['F3'], 'assignments': ['F3', 'F3', 'F3', 'F3', 'F3', 'F3', 'F3']}",50,nl,0