Submission #1178611

#TimeUsernameProblemLanguageResultExecution timeMemory
1178611drakozsPoi (IOI09_poi)C++20
65 / 100
158 ms16192 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,fma") using namespace __gnu_pbds; #define ordered_set tree<pair<int, int>, null_type,less<pair<int, int>>, rb_tree_tag,tree_order_statistics_node_update> #define ll long long #define MOD 1000000007 #define MAXN 2e5 #define SIZE 314 #define pb push_back using namespace std; ll power(ll a, ll b){ if (b == 0) return 1; ll res = power(a, b / 2); // if (b % 2 == 1) return res * res % MOD * a % MOD; // return res * res % MOD; if (b % 2 == 1) return res * res * a; return res * res; } bool sortCol(vector<int> &a, vector<int> &b){ if (a[0] == b[0]){ if (a[1] == b[1]){ return a[2] < b[2]; } return a[1] > b[1]; } return a[0] > b[0]; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, t, p; cin >> n >> t >> p; vector<int> incorrect(n + 1, 0); vector<vector<int>> solved(n + 1, vector<int>(t + 1)); for (int i = 1; i <= n; i++){ for (int j = 1; j <= t; j++){ cin >> solved[i][j]; if (solved[i][j] == 0){ incorrect[j]++; } } } vector<vector<int>> points(n + 1, vector<int>(3, 0)); for (int i = 1; i <= n; i++){ points[i] = {0, 0, i}; } for (int i = 1; i <= n; i++){ for (int j = 1; j <= t; j++){ if (solved[i][j] == 1){ points[i][1]++; points[i][0] += incorrect[j]; } } } sort(points.begin() + 1, points.end(), sortCol); for (int i = 1; i <= n; i++){ if (points[i][2] == p){ cout << points[i][0] << " " << i << "\n"; break; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...