Pagini recente » Cod sursa (job #356291) | Cod sursa (job #1328167) | Cod sursa (job #2804541) | Cod sursa (job #2381834) | Cod sursa (job #8026)
Cod sursa(job #8026)
// Misto ideea cu eliminarea...
// complexitate O(M)...
#include <cstdio>
#include <vector>
using namespace std;
#define PB push_back
const int NMAX = 4096;
int N, M;
vector <int> G[NMAX];
int GR[NMAX];
void read() {
FILE *fin = fopen("triplete.in", "rt");
int i, u, v;
fscanf(fin, " %d %d", &N, &M);
for (i = 0; i < M; ++i) {
fscanf(fin, " %d %d", &u, &v);
--u, --v;
++GR[u], ++GR[v];
G[u].PB(v), G[v].PB(u);
}
fclose(fin);
}
void write() {
FILE *fout = fopen("triplete.out", "wt");
long long cnt;
int i;
unsigned j;
cnt = (long long) N * (N - 1) * (N - 2) / 6;
for (i = 0; i < N; ++i) {
cnt -= GR[i] * (N - i - 1 - GR[i]);
for (j = 0; j < G[i].size(); ++j)
--GR[ G[i][j] ];
}
fprintf(fout, "%lld\n", cnt);
fclose(fout);
}
int main() {
read();
write();
return 0;
}