# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
651124 | ymm | Poi (IOI09_poi) | C++17 | 249 ms | 4564 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (ll)(r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (ll)(l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;
const int N = 2048;
int n, t, p; // network time protocol
int task_cnt_solved[N];
int par_cnt_solved[N];
int par_sum_solved[N];
bool solved_par_task[N][N];
int ids[N];
bool cmp(int i, int j)
{
if (par_sum_solved[i] > par_sum_solved[j])
return 1;
if (par_sum_solved[i] < par_sum_solved[j])
return 0;
if (par_cnt_solved[i] > par_cnt_solved[j])
return 1;
if (par_cnt_solved[i] < par_cnt_solved[j])
return 0;
return i < j;
}
int main()
{
cin.tie(0) -> sync_with_stdio(false);
cin >> n >> t >> p; --p;
Loop (par,0,n) Loop (task,0,t) {
int x;
cin >> x;
task_cnt_solved[task] += x;
par_cnt_solved[par] += x;
solved_par_task[par][task] = x;
}
Loop (par,0,n) Loop (task,0,t) {
if (solved_par_task[par][task])
par_sum_solved[par] += n - task_cnt_solved[task];
}
iota(ids, ids+n, 0);
sort(ids, ids+n, cmp);
int ans = 0;
for (; ids[ans] != p; ++ans);
cout << par_sum_solved[p] << ' ' << ans+1 << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |