#include <bits/stdc++.h>
using namespace std;
int d, p, s;
struct n {
string name; string id; string time; int sx; } a[1010];
vector<n> ck;
map<string, int> mp, mp1;
int cmp(n a, n b) {
if (a.time == b.time)
return a.sx < b.sx;
return a.time < b.time;
}
bool f1(string id) {
if (id.size() != 18)
return false;
for (int i = 0; i < 18; i++) {
if (id[i] < '0' || id[i] > '9')
return false;
}
return true;
}
void give(int j, int day) {
if (s < 1)
return;
if (!mp1.count(a[j].id)) {
cout << a[j].name << ' ' << a[j].id << "\n";
mp1[a[j].id] = day;
s--;
} else {
if (day > mp1[a[j].id] + p) {
cout << a[j].name << ' ' << a[j].id << "\n";
mp1[a[j].id] = day;
s--;
}
}
}
void f() {
cin >> d >> p;
int t;
for (int i = 0; i < d; i++) {
cin >> t >> s;
for (int j = 0; j < t; j++) {
a[j].sx = j;
cin >> a[j].name >> a[j].id;
int if_;
cin >> if_;
if (if_ && !mp.count(a[j].id) && f1(a[j].id)) {
mp[a[j].id] = 1; ck.push_back(a[j]); }
cin >> a[j].time; }
sort(a, a + t, cmp);
for (int j = 0; j < t; j++) {
if (f1(a[j].id)) {
give(j, i);
}
}
}
for (int i = 0; i < ck.size(); i++) {
cout << ck[i].name << " " << ck[i].id << "\n";
}
return;
}
int main(void) {
f();
return 0;
}
共 1 条回复
@ykj46 这个代码