Pagini recente » Cod sursa (job #2536341) | Cod sursa (job #2742239) | Cod sursa (job #2084852) | Cod sursa (job #698877) | Cod sursa (job #641710)
Cod sursa(job #641710)
// proiect.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<vector>
#define prime 500151
using namespace std;
vector <int> my_hash[prime];
int cauta( int b)
{
int rest = b % prime;
int nr_el = my_hash[rest].size();
for( int i = 0; i < nr_el; ++i)
if(my_hash[rest][i] == b ) return 1;
return 0;
}
void sterge( int b)
{
int rest = b % prime;
int nr_el = my_hash[rest].size();
for( int i = 0; i < nr_el; ++i)
if(my_hash[rest][i] == b ) {
my_hash[rest][i] = my_hash[rest].back();
my_hash[rest].pop_back();
}
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n;
scanf("%d", &n);
for( int i = 1; i <= n; ++i)
{
int a, b;
scanf("%d %d", &a, &b);
if( a == 3)
printf("%d\n", cauta(b));
if( a == 1)
if( cauta(b) == 0 )
my_hash[b%prime].push_back(b);
if( a == 2)
sterge(b);
}
return 0;
}
/*#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
using namespace std;
int i,lung_subsir;
char sir[256],subsir[256]="Microsoft",*p;
char rezultat[256];
char adaos[]="Corel";
FILE *v;
int deschidere()
{ //if( (*v = fopen_s(&sir,"text.txt","r")) == NULL )
// { printf( "Eroare" ); return 0;}
freopen("text.txt","r",stdin);
printf( "Fisierul a fost deschis" );
}
void meniu()
{ clrscr();
cout<<"\n\n\n\t\t\tProiect Programare Procedurala";
cout<<"\n\n\n";
cout<<"\n\n\n\t\t\t1. Inlocuirea tuturor aparitiilor unui cuvant dat cu altul intr-un fisier";
cout<<"\n\n\t\t\t2. CMMDC a 'n' numere";
cout<<"\n\n\t\t\t3. Liste";
cout<<"\n\n\t\t\t4. Vectori";
cout<<"\n\n\t\t\t5. Pointeri";
cout<<"\n\n\n ALEGETI 1, 2, 3, 4 sau 5. Oricare alta alegere conduce la inchiderea programului\n ";
}
int sem (char *s, char c[256])
{ int l,L;
l=strlen(s);
L=strlen(c);
if(l<L)return 0;
for( i = 0; i < L; ++i)
if( s[ i ] != c[ i ] ) return 0;
return 1;
}
//Problema fisier;
void inlocuire()
{
int lung_rez = 0;
for(i=0;i<strlen(sir);i++)
{
if( sem( sir + i, subsir) == 1)
{
strcat(rezultat, adaos);
i = i + strlen(subsir) - 1;
lung_rez += strlen( adaos);
continue;
}
rezultat[ lung_rez++ ] = sir[ i ]; // pune caracterul i din sir in rezultat
}
}
int main()
{ // Meniul programului;
int aleg,i,continua=1;
do{ meniu();
cin>>aleg;
switch(aleg)
{case 1:inlocuire();break;
case 2:cmmdc();break;
case 3:test();break;
case 4:test();break;
case 5:test();break;
default: continua=0;
}
}while(continua==1);
//getch();
return 1;
}
*/