Pagini recente » Rating Nicola Elena Beatrice (Bibinicola) | Cod sursa (job #2081810) | Cod sursa (job #1827220) | Cod sursa (job #2894102) | Cod sursa (job #52309)
Cod sursa(job #52309)
#include <stdio.h>
#include <assert.h>
#include <bitset>
using namespace std;
enum { maxn = 4096, maxe = 65536 };
bitset<maxn> ad[maxn], work;
int n, e;
int edge[maxe][2];
int ans;
int main()
{
int i;
FILE *f = fopen("triplete.in", "r");
if(!f) return 1;
fscanf(f, "%d%d", &n, &e);
for(i = 0; i < e; i++)
{
fscanf(f, "%d%d", &edge[i][0], &edge[i][1]);
edge[i][0]--;
edge[i][1]--;
ad[ edge[i][0] ][ edge[i][1] ] = true;
ad[ edge[i][1] ][ edge[i][0] ] = true;
}
fclose(f);
f = fopen("triplete.out", "w");
if(!f) return 1;
for(i = 0; i < e; i++)
{
printf("edge %d - %d\n", edge[i][0], edge[i][1]);
work = ad[ edge[i][0] ] & ad[ edge[i][1] ];
printf("+= %d\n", work.count());
ans += work.count();
}
assert(ans % 3 == 0);
ans /= 3;
printf("ans %d\n", ans);
fprintf(f, "%d\n", ans);
fclose(f);
return 0;
}