--- tags: IOI --- # IOI2009 Day1-3 プロブディフ情報オリンピック (POI) やるだけ ## 問題 https://www.ioi-jp.org/ioi/2009/problems/day1/POI_jp.pdf https://oj.uz/problem/view/IOI09_poi ## 実装 https://oj.uz/submission/221211 ```cpp #include <bits/stdc++.h> using namespace std; using tuplis = array<int, 3>; #define name2(a,b,c,...) c #define rep1(b) for(int i = 0; i < b; i++) #define rep2(i,b) for(int i = 0; i < b; i++) #define rep(...) name2(__VA_ARGS__,rep2,rep1)(__VA_ARGS__) #define each(i,a) for(auto&& i : a) #define all(a) begin(a), end(a) int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n, t, p; cin >> n >> t >> p; p--; vector<vector<bool>> a(t, vector<bool>(n)); rep(n) rep(j, t){ char c; cin >> c; a[j][i] = c & 1; } vector<int> point(t); rep(t) point[i] = n - accumulate(all(a[i]), 0); vector<tuplis> b(n); rep(n){ b[i][2] = i; rep(j, t) if(a[j][i]){ b[i][0] -= point[j]; b[i][1]--; } } sort(all(b)); rep(n) if(b[i][2] == p) cout << -b[i][0] << ' ' << i + 1 << endl; } ```