Submission #138792

# Submission time Handle Problem Language Result Execution time Memory
138792 2019-07-30T10:30:06 Z FedericoS Duathlon (APIO18_duathlon) C++14
0 / 100
1000 ms 1048576 KB
#include <iostream>
#include <vector>
#include <map>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> pll;

bool sub3=true;

ll N,M;
ll x,y;
ll A,B,C,ans;
bool V[300005];
vector<ll> grafo[300005];
ll S[300005];

map <pll,ll> E;

void DFSsub3(int k){

	B++;
	if(V[k])
		return;
	A++;
	C++;
	V[k]=true;

	for(int f:grafo[k])
		DFSsub3(f);}

void DFS(int k, int p=-1){

	for(int f:grafo[k])
		if(f!=p)
			DFS(f,k);

	E[{p,k}]=1;

	for(int f:grafo[k])
		if(f!=p)
			E[{p,k}]+=E[{k,f}];

	E[{k,p}]=C-E[{p,k}];

}

int main(){

	cin>>N>>M;
	for(int i=0;i<M;i++){
		cin>>x>>y;
		grafo[x].push_back(y);
		grafo[y].push_back(x);
	}

	for(int i=1;i<N+1;i++)
		if(grafo[i].size()>2)
			sub3=false;

	sub3=false;

	if(sub3){
		for(int i=1;i<N+1;i++)
			if(!V[i]){
				A=B=0;
				DFSsub3(i);
				if(B-1==2*A)
					ans+=(A*(A-1)*(A-2));
				else	
					ans+=(A*(A-1)*(A-2))/3;
			}
		cout<<ans;}
	else{

		for(int i=1;i<N+1;i++)
			if(!V[i]){
				DFSsub3(i);
				DFS(i);
			}

		for(ll i=1;i<N+1;i++){
			A=B=0;
			for(ll f:grafo[i]){
				A+=E[{i,f}];
				B+=E[{i,f}]*E[{i,f}];
			}
			A=A*A;
			ans+=A-B;
		}

		cout<<ans;

	}

}
# Verdict Execution time Memory Grader output
1 Runtime error 852 ms 1048576 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 852 ms 1048576 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1094 ms 456320 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 7544 KB Output is correct
2 Correct 10 ms 7544 KB Output is correct
3 Correct 11 ms 7544 KB Output is correct
4 Correct 10 ms 7672 KB Output is correct
5 Correct 11 ms 7672 KB Output is correct
6 Correct 10 ms 7672 KB Output is correct
7 Correct 11 ms 7672 KB Output is correct
8 Correct 10 ms 7544 KB Output is correct
9 Correct 11 ms 7592 KB Output is correct
10 Incorrect 10 ms 7544 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 401 ms 24180 KB Output is correct
2 Correct 409 ms 25060 KB Output is correct
3 Correct 390 ms 24956 KB Output is correct
4 Correct 396 ms 25080 KB Output is correct
5 Correct 401 ms 25176 KB Output is correct
6 Correct 412 ms 32084 KB Output is correct
7 Correct 526 ms 30108 KB Output is correct
8 Correct 440 ms 28676 KB Output is correct
9 Correct 453 ms 27472 KB Output is correct
10 Incorrect 413 ms 24988 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 7544 KB Output is correct
2 Correct 10 ms 7516 KB Output is correct
3 Execution timed out 1148 ms 1016992 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 403 ms 23968 KB Output is correct
2 Correct 483 ms 25224 KB Output is correct
3 Execution timed out 1129 ms 724720 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 852 ms 1048576 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 852 ms 1048576 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -