제출 #304601

#제출 시각아이디문제언어결과실행 시간메모리
304601loliconCarnival Tickets (IOI20_tickets)C++14
11 / 100
2 ms768 KiB
#include "tickets.h"
#include <bits/stdc++.h>
using namespace std;

#define all(x) begin(x), end(x)

long long find_maximum(int k, vector<vector<int>> x) {
	int n = x.size();
	int m = x[0].size();
	vector<vector<int>> ans;
	for (int i = 0; i < n; i++) {
		vector<int> row(m, -1);
		ans.push_back(row);
	}
	
	set<int> st;
	vector<pair<int, int>> v;
	for(int i = 0; i < n; i++) {
		v.emplace_back(x[i][0], i);
		v.emplace_back(x[i][m - 1], i);
	}
	int p;
	sort(all(v));
	for(int i = 0; i < 2 * n; i++) {
		st.insert(v[i].second);
		if(st.size() == n / 2) {
			p = i;
			break;
		}
	}
	st.clear();
	for(int i = 0; i <= p; i++) {
		if(!st.count(v[i].second)) 
			ans[v[i].second][0] = 0;
	}
	st.clear();
	for(int i = 2 * n - 1; i > p; i--) {
		if(!st.count(v[i].second))
			ans[v[i].second][m - 1] = 0;
	}


	// cal
	long long ret = 0;
	vector<vector<int>> T(k);
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			if(ans[i][j] != -1) {
				T[ans[i][j]].push_back(x[i][j]);
			}
		}
	}
	for(int i = 0; i < k; i++) {
		sort(begin(T[i]), end(T[i]));
		int p = T[i][n / 2];
		for(int j = 0; j < n; j++) {
			ret = ret + (long long)abs(p - T[i][j]);
		}
	}
	allocate_tickets(ans);
	/*for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			cout << ans[i][j] << " \n"[j == m - 1];
		}
	}*/
	return ret;
}

컴파일 시 표준 에러 (stderr) 메시지

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:26:16: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |   if(st.size() == n / 2) {
      |      ~~~~~~~~~~^~~~~~~~
tickets.cpp:22:6: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   22 |  int p;
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...