QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#583384 | #9370. Gambling on Choosing Regionals | Line_Mao | ML | 0ms | 0kb | C++14 | 1.1kb | 2024-09-22 19:46:15 | 2024-09-22 19:46:15 |
answer
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
int main()
{
int n, k; cin >> n >> k;
int c[1000000009];
for (int i = 0; i < k; i++) {
cin >> c[i];
}
sort(c, c + k);
int a[100001];
string b[100001];
map<string, vector<int>>mp;
for (int i = 0; i < n; i++)
{
cin >> a[i] >> b[i];
mp[b[i]].push_back(a[i]);
}
for (map<string, vector<int>>::iterator it = mp.begin(); it != mp.end(); it++)
{
sort(it->second.begin(), it->second.end());
}
for (int i = 0; i < n; i++)
{
int ans = 1;
for (map<string, vector<int>>::iterator it = mp.begin(); it != mp.end(); it++)
{
if (it->first == b[i])
{
for (int j = c[0] - 1; j > 0; j--)
{
if (a[i] < it->second[mp[it->first].size() - j])
{
ans = ans + j;
break;
}
}
}
else
{
for (int j = c[0]; j > 0; j--)
{
if (a[i] < it->second[mp[it->first].size() - j])
{
ans += j;
break;
}
}
}
}
cout << ans << endl;
}
}
詳細信息
Test #1:
score: 0
Memory Limit Exceeded
input:
5 3 1 2 3 100 THU 110 PKU 95 PKU 105 THU 115 PKU