Submission #634259

# Submission time Handle Problem Language Result Execution time Memory
634259 2022-08-24T08:04:59 Z l_reho Dancing Elephants (IOI11_elephants) C++14
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;

int n;

set<pair<int, int>> V;
void init(int N, int L, int X[]){
	n = N;
	
	for(int i = 0; i < N; i++) V.insert({X[i], i});
	
	/*
	
	for(int i = 0; i < N; i++){
		if(prev_pos == -1 || V[i].first > prev_pos+L) camPos[i] = 1, prev_pos = V[i].first;
		posInCamPos[V[i].second] = i;
	}
	build(1, 0, N-1);
	
	*/
	
	
}


// facciamo 26 punti
int update(int i, int y){
	
	// Mi serve la posizione dell'elefante i all'interno di camPos
	
	// quando faccio l'update della posizione, come cambiano le cose?
	// posso fare molte operazioni in O(logN) usando i set
	
	// Cambio la posizione dell'elefante i all'interno di camPos ()
	// prenderà il posto di qualcun'altro
	
	int tot = 0;
	
	for(set<pair<int, int>>::iterator it = V.begin(); it != V.end(); it++){
		if((*it).second == i){
			V.erase(it);
			break;
		}
	}
	
	V.insert({y, i});
	
	
	int prev_pos = -1;
	
	
	for(auto v : V)
		if(prev_pos == -1 || v.first > prev_pos+L) prev_pos = v.first, tot++;
	
	// riassegno le camere nelle vicinanze
	
	// trovo la prima cam, prima di y, trovo la prima cam dopo y, controllo
	// se una delle due interseca y
	// se è così apposto, altrimenti sposto la successiva indietro su y e 
	// vedo se funziona, se non funziona la lascio dove sta e aggiungo una camera
	
	return tot;
}

Compilation message

elephants.cpp: In function 'int update(int, int)':
elephants.cpp:53:43: error: 'L' was not declared in this scope
   53 |   if(prev_pos == -1 || v.first > prev_pos+L) prev_pos = v.first, tot++;
      |                                           ^