Pagini recente » Cod sursa (job #1194928) | Cod sursa (job #576360) | Cod sursa (job #2842237) | Cod sursa (job #1070718) | Cod sursa (job #1471120)
#include<cstdio>
#include<set>
#include<queue>
using namespace std;
queue<int>Q;
set<int>L[30100];
set<int>::iterator it,itt,iit;
int n,m,i,j,a,b,v[100];
FILE *f,*g;
int main(){
f=fopen("count.in","r");
g=fopen("count.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++){
fscanf(f,"%d%d",&a,&b);
L[a].insert(b);
L[b].insert(a);
}
for(i=1;i<=n;i++){
if(L[i].size()<6)
Q.push(i);
}
v[1]=n;
v[2]=m;
while(!Q.empty()){
a=Q.front();
for(it=L[a].begin();it!=L[a].end();it++){
for(itt=L[a].begin();itt!=L[a].end();itt++){
if( it!=itt && L[*it].find(*itt)!=L[*it].end() )
v[3]++;
}
}
for(it=L[a].begin();it!=L[a].end();it++){
for(itt=L[a].begin();itt!=L[a].end();itt++){
if(it!=itt)
for(iit=L[a].begin();iit!=L[a].end();iit++){
if( it!=iit && L[*it].find(*itt)!=L[*it].end() && L[*it].find(*iit)!=L[*it].end() && L[*itt].find(*iit)!=L[*itt].end() )
v[4]++;
}
}
}
for(it=L[a].begin();it!=L[a].end();it++){
L[*it].erase(a);
if(L[*it].size()==5)
Q.push(*it);
}
Q.pop();
}
v[3]/=2;
v[4]/=6;
for(i=4;i>=1;i--){
if(v[i]){
fprintf(g,"%d %d",i,v[i]);
return 0;
}
}
fclose(f);
fclose(g);
}