Submission #1018155

#TimeUsernameProblemLanguageResultExecution timeMemory
1018155FaggiPoi (IOI09_poi)C++11
100 / 100
373 ms16148 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n, t, p, i, j, tasks, punts, a; cin >> n >> t >> p; vector<vector<int>> v(n, vector<int>(t)); vector<int> punt(t, n); vector<tuple<int, int, int>> tabla; // (puntaje, tareas resueltas, id) for(i = 0; i < n; i++) { for(j = 0; j < t; j++) { cin >> a; if(a) { punt[j]--; } v[i][j] = a; } } for(i = 0; i < n; i++) { punts = 0; tasks = 0; for(j = 0; j < t; j++) { if(v[i][j]) { tasks++; punts += punt[j]; } } tabla.push_back(make_tuple(punts, tasks, i)); } // Ordenar tabla: primero por puntaje descendente, luego por tareas resueltas descendente, luego por id ascendente sort(tabla.begin(), tabla.end(), [](const tuple<int, int, int>& a, const tuple<int, int, int>& b) { if(get<0>(a) != get<0>(b)) return get<0>(a) > get<0>(b); // puntaje descendente if(get<1>(a) != get<1>(b)) return get<1>(a) > get<1>(b); // tareas resueltas descendente return get<2>(a) < get<2>(b); // id ascendente }); for(i = 0; i < int(tabla.size()); i++) { if(get<2>(tabla[i]) == (p - 1)) { cout << get<0>(tabla[i]) << " " << (i + 1); return 0; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...