Pagini recente » Cod sursa (job #2902194) | Cod sursa (job #414272) | Cod sursa (job #815574) | Cod sursa (job #919437) | Cod sursa (job #52310)
Cod sursa(job #52310)
#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++)
{
work = ad[ edge[i][0] ] & ad[ edge[i][1] ];
ans += work.count();
}
assert(ans % 3 == 0);
ans /= 3;
fprintf(f, "%d\n", ans);
fclose(f);
return 0;
}