제출 #311629

#제출 시각아이디문제언어결과실행 시간메모리
311629tfg카니발 티켓 (IOI20_tickets)C++17
컴파일 에러
0 ms0 KiB
#include "tickets.h"
#include <vector>
#include <utility>
#include <algorithm>
#include <cassert>

long long find_maximum(int k, std::vector<std::vector<int>> x) {
	int n = x.size();
	int m = x[0].size();
	std::vector<std::vector<int>> answer(n, std::vector<int>(m, -1));
	std::vector<int> h(n, 0), l(n, k);
	long long tot = 0;
	std::vector<std::pair<int, int>> things;
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < k; j++) {
			things.emplace_back(x[i][k-j-1] + x[i][m-j-1], i);
		}
	}
	std::sort(things.rbegin(), things.rend());
	for(int i = 0; i < n * k / 2; i++) {
		tot += things[i].first;
		h[things[i].second]++;
		l[things[i].second]--;
	}
	for(int col = 0; col < k; i++) {
		int U = n / 2, L = n / 2;
		std::vector<bool> wtf(n, false);
		for(int i = 0; i < n; i++) {
			if(h[i] == 0) {
				l[i]--;
				answer[i][l[i]] = col;
				wtf[i] = true;
				L--;
			} else if(l[i] == 0) {
				h[i]--;
				answer[i][m-h[i]-1] = col;
				wtf[i] = true;
				U--;
			}
		}
		assert(U >= 0 && L >= 0);
		for(int i = 0; i < n; i++) {
			if(!wtf[i]) {
				if(U) {
					h[i]--;
					answer[i][m-h[i]-1] = col;
					wtf[i] = true;
					U--;
				} else {
					l[i]--;
					answer[i][l[i]] = col;
					wtf[i] = true;
					L--;
				}
			}
		}
		assert(U == 0 && L == 0);
	}
	allocate_tickets(answer);
	return tot;
}

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

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:25:28: error: 'i' was not declared in this scope
   25 |  for(int col = 0; col < k; i++) {
      |                            ^