답안 #1018100

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1018100 2024-07-09T14:15:54 Z NintsiChkhaidze 최후의 만찬 (IOI12_supper) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#include "advisor.h"
#define pb push_back
using namespace std;

const int MM = 2e6 + 5;

vector <int> st[MM];
bool onn[MM],val[MM],valk[MM];

void ComputeAdvice(int *C, int N, int K, int M) {
	int n=N,k=K;
	for (int i=N-1;i>=0;i--){
		st[C[i]].pb(i);
	}
	
	set <pair<int,int> > stt;
	for (int i=0;i<K;i++){
		onn[i] = 1;
		int val = 0;
		if (!st[i].size()) val=1e9;
		else val=st[i].back();
		stt.insert({val,i});
	}
	
	int i;
	vector <int> vec;
	for (i = 0; i < N; i++) {
    	int req = C[i];
    	if (onn[req]) {
    		vec.pb(-1);
    		int val = 0;
			if (!st[req].size()) val=1e9;
			else val=st[req].back();
			stt.erase(stt.find({val,req}));
			
			while (st[req].size() && st[req].back() <= i){
    			st[req].pop_back();
			}
			val = 0;
			if (!st[req].size()) val=1e9;
			else val=st[req].back();
			stt.insert({val,req});
			continue;
		}
    	
		int idx=(--stt.end())->second; stt.erase(--stt.end());
		vec.pb(idx);
		onn[idx] = 0;
		onn[req] = 1;
		
		while (st[req].size() && st[req].back() <= i){
    		st[req].pop_back();
		}
		
		int val = 0;
		if (!st[req].size()) val=1e9;
		else val=st[req].back();
		stt.insert({val,req});
  	}
  	
  	for (int i = 0; i < k; i++){
  		int x = i;
  		bool check = 0;
  		
  		for (int j = 0; j < n; j++){
  			if (C[j] == x) break;
			if (vec[j] == -1) continue;
			if (vec[j] == x){
				check=1;
				break;
			}
		}
		
		if (check) {
			//meore taroze unda iyos
			//jer washlaa
			valk[i] = 1;
		}
	}
	
	for (int i = 0; i < n; i++){
		int x = C[i];
		bool check=0;
		
		for (int j = i + 1; j < n; j++){
			if (C[j] == x) break;
			if (vec[j] == -1) continue;
			if (vec[j] == x){
				check=1;
				break;
			}
		}
		
		if (check) {
			//meore taroze unda iyos
			//jer washlaa
			val[i] = 1;
		}
	}
  	
//  	for (int i=0;i<k;i++){
//  		WriteAdvice(valk[i]);
//		cout<<valk[i]<<" ";
//	}
//  	cout<<endl;
//  	
//	for (int i=0;i<n;i++){
//		WriteAdvice(val[i]);
//		cout<<val[i]<<" ";
//	}
//	cout<<endl;
}
#include <bits/stdc++.h>
#include "assistant.h"
using namespace std;

int CC[2000005];
bool on[2000005];
int vall[2000005],vallk[2000005];

void Assist(unsigned char *A, int N, int K, int R) {
	int n=N;
	int k=K;
	for (int i = 0; i < k; i++)
		vallk[i] = A[i];
	for (int i=0;i<n;i++)
		vall[i] = A[i+k];
	
	vector <int> t2;
	for (int i=0;i<k;i++){
		if (!vallk[i]) on[i] = 1;
		else t2.pb(i);
	}
	
	int i;
	int l = 0;
	for (i = 0; i < N; i++) {
    	int req = GetRequest();
    	if (on[req]){
    		if (!vall[i]) continue;
    		on[req] = 0;
    		t2.pb(req);
    		continue;
		}
		
		PutBack(t2.back());
		t2.pop_back();
		
		if (!vall[i]){
			on[req] = 1;
		}else{
			t2.pb(req);
		}
  	}
}

Compilation message

assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:20:11: error: 'class std::vector<int>' has no member named 'pb'
   20 |   else t2.pb(i);
      |           ^~
assistant.cpp:30:10: error: 'class std::vector<int>' has no member named 'pb'
   30 |       t2.pb(req);
      |          ^~
assistant.cpp:40:7: error: 'class std::vector<int>' has no member named 'pb'
   40 |    t2.pb(req);
      |       ^~
assistant.cpp:24:6: warning: unused variable 'l' [-Wunused-variable]
   24 |  int l = 0;
      |      ^