제출 #357630

#제출 시각아이디문제언어결과실행 시간메모리
357630MefarnisLanguages (IOI10_languages)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "grader.h"
#define maxl 56
#define maxc 100
#define maxt 65536
#define pb push_back
using namespace std;
typedef pair<int,int> pi;
typedef pair<pi,pi> pii;

map<pii,bool> mp[maxl];

void excerpt(int tokens[maxc]) {
	int score[maxl];
	for( int l = 0 ; l < maxl ; l++ ) {
		score[l] = 0;
		for( int i = 0 ; i <= maxc-4 ; i++ ) {
			pi p1 = pi(tokens[i],tokens[i+1]);
			pi p2 = pi(tokens[i+2],tokens[i+3]);
			pii p = pii(p1,p2);
			mp[l] += mp[l].count(p);
		}
	}	
	int bestScore = -1;
	vector<int> candidates;
	for( int l = 0 ; l < maxl ; l++ )
		if(score[l] > bestScore) {
			bestScore = score[l];
			candidates.clear();
			candidates.pb(l);
		}
		else if(score[l] == bestScore)
			candidates.pb(l);
	int sz = candidates.size();
	srand(time(NULL));
	int l = candidates[rand()%sz];
	l = language(l);
	for( int i = 0 ; i <= maxc-4 ; i++ ) {
		pi p1 = pi(tokens[i],tokens[i+1]);
		pi p2 = pi(tokens[i+2],tokens[i+3]);
		pii p = pii(p1,p2);
		mp[l][p] = true;
	}
}

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

lang.cpp: In function 'void excerpt(int*)':
lang.cpp:21:10: error: no match for 'operator+=' (operand types are 'std::map<std::pair<std::pair<int, int>, std::pair<int, int> >, bool>' and 'std::map<std::pair<std::pair<int, int>, std::pair<int, int> >, bool>::size_type' {aka 'long unsigned int'})
   21 |    mp[l] += mp[l].count(p);
      |    ~~~~~~^~~~~~~~~~~~~~~~~