Submission #263602

# Submission time Handle Problem Language Result Execution time Memory
263602 2020-08-13T20:26:24 Z shrek12357 Poi (IOI09_poi) C++14
100 / 100
1086 ms 23928 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <climits>
#include <cmath>
#include <fstream>
#include <queue>
using namespace std;

struct state {
	int score;
	int numTasks;
	int index;
};

bool comp(state state1, state state2) {
	if (state1.score != state2.score) {
		return state1.score > state2.score;
	}
	if (state1.numTasks != state2.numTasks) {
		return state1.numTasks > state2.numTasks;
	}
	return state1.index < state2.index;
}

#define MAXN 2005

int main() {
	int n, t, p;
	cin >> n >> t >> p;
	int dp[MAXN][MAXN];
	int tasks[MAXN];
	for (int i = 0; i < t; i++) {
		tasks[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < t; j++) {
			int temp;
			cin >> temp;
			if (temp == 0) {
				tasks[j]++;
			}
			dp[i][j] = temp;
		}
	}
	vector<state> people;
	for (int i = 0; i < n; i++) {
		int curScore = 0, counter = 0;
		for (int j = 0; j < t; j++) {
			if (dp[i][j] == 1) {
				counter++;
				curScore += tasks[j];
			}
		}
		state temp = { curScore, counter, i + 1};
		people.push_back(temp);
	}
	sort(people.begin(), people.end(), comp);
	int ansScore = 0, ansIdx = 0;
	for (int i = 0; i < people.size(); i++) {
		if (people[i].index == p) {
			ansScore = people[i].score;
			ansIdx = i + 1;
		}
	}
	cout << ansScore << " " << ansIdx << endl;
}

Compilation message

poi.cpp: In function 'int main()':
poi.cpp:63:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<state>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |  for (int i = 0; i < people.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 512 KB Output is correct
6 Correct 1 ms 512 KB Output is correct
7 Correct 2 ms 640 KB Output is correct
8 Correct 2 ms 640 KB Output is correct
9 Correct 5 ms 768 KB Output is correct
10 Correct 9 ms 1280 KB Output is correct
11 Correct 34 ms 2176 KB Output is correct
12 Correct 62 ms 3476 KB Output is correct
13 Correct 163 ms 6652 KB Output is correct
14 Correct 233 ms 9336 KB Output is correct
15 Correct 409 ms 12792 KB Output is correct
16 Correct 450 ms 13944 KB Output is correct
17 Correct 662 ms 16888 KB Output is correct
18 Correct 735 ms 19300 KB Output is correct
19 Correct 996 ms 23200 KB Output is correct
20 Correct 1086 ms 23928 KB Output is correct