From b78869568ef8d97047749596dd1df43a6b9246e7 Mon Sep 17 00:00:00 2001 From: Anthony Wang Date: Tue, 6 Oct 2020 17:31:42 -0500 Subject: [PATCH] Add poi.cpp --- 09/poi.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 09/poi.cpp diff --git a/09/poi.cpp b/09/poi.cpp new file mode 100644 index 0000000..e16bf42 --- /dev/null +++ b/09/poi.cpp @@ -0,0 +1,46 @@ +#include +#define f first +#define s second +using namespace std; +using ll = long long; +using ii = pair; +constexpr int MX = 2005; + +bool B[MX][MX]; +int pt[MX], sc[MX], sv[MX], rk[MX]; + +int main() { + if (fopen("in", "r")) freopen("in", "r", stdin), freopen("out", "w", stdout); + ios_base::sync_with_stdio(0), cin.tie(0); + + int N, T, P; cin >> N >> T >> P; + for (int i = 0; i < N; ++i) { + for (int j = 0; j < T; ++j) cin >> B[i][j]; + } + + for (int i = 0; i < T; ++i) { + pt[i] = N; + for (int j = 0; j < N; ++j) pt[i] -= B[j][i]; + } + + for (int i = 0; i < N; ++i) + for (int j = 0; j < T; ++j) + if (B[i][j]) sc[i] += pt[j], ++sv[i]; + + for (int i = 0; i < N; ++i) rk[i] = i; + + sort(rk, rk+N, [&](int a, int b) { + if (sc[a] == sc[b]) { + if (sv[a] == sv[b]) return a < b; + return sv[a] > sv[b]; + } + return sc[a] > sc[b]; + }); + + for (int i = 0; i < N; ++i) { + if (rk[i] == P-1) { + cout << sc[rk[i]] << ' ' << i+1; + return 0; + } + } +} \ No newline at end of file