Cod sursa(job #640572)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 25 noiembrie 2011 23:02:31
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>
#include <vector>

#define P 1433

using namespace std;

long n, i, t, v;
vector <long> V[P + 10];

inline vector<long>::iterator find_value(long x) {
    long aux = v % P;
    vector<long>::iterator it;

    for (it = V[aux].begin(); it != V[aux].end(); ++it)
        if (*it == x)
            return it;
		
    return V[aux].end();
}

int main() {
	ifstream fin("hashuri.in");
	ofstream fout("hashuri.out");
	
	fin>>n;
	for (i = 1; i <= n; ++i) {
		fin>>t>>v;
		if (t == 1) {
			long aux = v % P;
			long S = V[aux].size();
			long ok = 0;
			for (long j = 0; j < S; ++j)
				if (V[aux][j] == v) {
					ok = 1;
					break;
				}
			if (!ok) V[aux].push_back(v);
		}
		if (t == 2) {
			long aux = v % P;			
			vector<long>::iterator it = find_value(v);
			
			if (it != V[aux].end())
				V[aux].erase(it);
			
			//V[aux].erase(v);
		}
		if (t == 3) {
			long aux = v % P;
			long S = V[aux].size();
			long ok = 0;
			for (long j = 0; j < S; ++j)
				if (V[aux][j] == v) {
					fout<<"1"<<"\n";
					ok = 1;
					break;
				}			
			fout<<"0"<<"\n";
		}
	}
	return 0;
}