Nu aveti permisiuni pentru a descarca fisierul grader_test7.in

Cod sursa(job #82753)

Utilizator MariusMarius Stroe Marius Data 8 septembrie 2007 23:12:05
Problema Count Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>

const char iname[] = "count.in";
const char oname[] = "c:\\output.txt";

#define MAXN  30007

unsigned int *G[MAXN][128];


void add_edge(const int x, const int y)
{
	if (G[x][y & 127] == 0) {
		G[x][y & 127] = new unsigned int[8];
		for (int i = 0; i < 8; ++ i)
			G[x][y & 127][i] = 0;
	}
	G[x][y & 127][y >> 12] |= 1 << ((y >> 7) & 31);
}

int query_edge(const int x, const int y)
{
	if (G[x][y & 127] == 0)
		return 0;
	return G[x][y & 127][y >> 12] | 1 << ((y >> 7) & 31);
}

int main(void)
{
	int n;
	int n_edges;
	int x, y;

	FILE *fi = fopen(iname, "r");

	fscanf(fi, "%d", &n);
	fscanf(fi, "%d", &n_edges);
	for (int i = 0; i < n_edges; ++ i) {
		fscanf(fi, "%d %d", &x, &y);
		add_edge(x, y);
		add_edge(y, x);
	}
	fclose(fi);

	return 0;
}