#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
long long n, k;
cin >> n >> k;
long long umiejetnosci[n + 3][k + 3];
long long zysk[n + 3][k + 3];
long long cur[k + 7];
vector<pair<long long, long long>> wymaganie_pos[k + 3];
long long gdzie_jestem[k + 7];
long long wilulepszy[n + 7];
for (long long i = 0; i < k; i++)
{
cur[i] = 0;
gdzie_jestem[i] = 0;
}
for (long long i = 0; i < n; i++)
{
wilulepszy[i] = 0;
}
for (long long i = 0; i < n; i++)
{
for (long long j = 0; j < k; j++)
{
cin >> umiejetnosci[i][j];
wymaganie_pos[j].push_back({ umiejetnosci[i][j] , i });
}
}
for (long long i = 0; i < k; i++)
{
sort(wymaganie_pos[i].begin(), wymaganie_pos[i].end());
}
for (long long i = 0; i < n; i++)
{
for (long long j = 0; j < k; j++)
{
cin >> zysk[i][j];
}
}
long long odp = 0;
vector<long long> wygram;
while (true)
{
for (long long i = 0; i < k; i++)
{
while (gdzie_jestem[i] < n && wymaganie_pos[i][gdzie_jestem[i]].first <= cur[i])
{
wilulepszy[wymaganie_pos[i][gdzie_jestem[i]].second]++;
if (wilulepszy[wymaganie_pos[i][gdzie_jestem[i]].second] == k)
{
odp++;
wygram.push_back(wymaganie_pos[i][gdzie_jestem[i]].second);
}
gdzie_jestem[i]++;
}
}
if (wygram.size() == 0)
{
cout << odp << endl;
return 0;
}
else
{
for (auto x : wygram)
{
for (long long i = 0; i < k; i++)
{
cur[i] += zysk[x][i];
}
}
wygram.clear();
}
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |