Nu aveti permisiuni pentru a descarca fisierul grader_test7.in
Cod sursa(job #82753)
Utilizator | 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;
}