All pastes #61671 Raw Edit

Unnamed

public c v1 · immutable
#61671 ·published 2006-06-04 10:59 UTC
rendered paste body
#include <stdio.h>#include <string.h>int hash(char *key);int dodaj(char *key);int usun(char *key);void wyswietl(void);char tablica[101][16];int licznik;int main(){    char polecenie[4], key[16];    int t, n;    scanf("%d", &t); /*ilosc testow*/    while(t--)    {        memset(tablica, 0, 16*101*sizeof(char));        scanf("%d", &n); /*ilosc operacji*/        while(n--)        {            scanf("%3s:%15s", &polecenie, &key);            if(strcmp(polecenie, "ADD")==0) dodaj(key);            else usun(key);        }        wyswietl();        licznik=0;    }    return 0;}int hash(char *key){        int i, h=0;        for(i=1; *key!='\0'; key++, i++)        {                h+= (*key)*i;        }        h*=19;        h%=101;        return h;}int dodaj(char *key){        int h, poz, i;        h=hash(key);        if(tablica[h][0]==0) /*puste miejsce*/        {            strcpy(tablica[h], key);            licznik++;        }        else        {            for(i=0; i<20; i++)            {                poz=(h + i*i + 23*i)%101;                if(strcmp(tablica[poz], key)==0) return 0; /*istnieje taki sam string*/                else if(tablica[poz][0]==0) /*puste miejce*/                {                    strcpy(tablica[poz], key);                    licznik++; return 0;                }            }        }        /*printf("%d %s\n", h, tablica[h]);*/        return 0;}int usun(char *key){    int h, i, poz;    h=hash(key);    /*if(tablica[h][0]!=0)*/        for(i=0; i<20; i++)        {            poz=(h + i*i + 23*i)%101;            /*if(tablica[poz][0]==0) /*nic nie ma*/            /*{                break;            }*/            if(strcmp(tablica[poz], key)==0) /*kasowanie*/            {                tablica[h][0]=0;                licznik--; break;            }        }    return 0;}void wyswietl(void){    int i;    printf("%d\n", licznik);    for(i=0; licznik>0 && i<101; i++)    {        if(tablica[i][0]!=0)        {            printf("%d:%s\n", i, tablica[i]);        }    }}