結果
問題 | No.488 四角関係 |
ユーザー |
![]() |
提出日時 | 2017-02-24 09:55:25 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 976 bytes |
コンパイル時間 | 681 ms |
コンパイル使用メモリ | 38,784 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2025-01-02 21:56:28 |
合計ジャッジ時間 | 1,742 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#include<stdio.h> int main(void){ int N,M,num=0; int edges[2]; char mat[50][50]={{0}}; int i,j,k,l,flg; scanf("%d%d",&N,&M); for(i=0;i<M;i++){ scanf("%d%d",&edges[0],&edges[1]); mat[edges[0]][edges[1]]=mat[edges[1]][edges[0]]=1; } for(i=0;i<N;i++){ for(j=i+1;j<N;j++){ for(k=j+1;k<N;k++){ if(!((mat[i][j]==1 && mat[j][k]==1 && mat[k][i]==0) || (mat[j][k]==1 && mat[k][i]==1 && mat[i][j]==0) || (mat[k][i]==1 && mat[i][j]==1 && mat[j][k]==0))) continue; if(mat[k][i]==0) flg=1; if(mat[i][j]==0) flg=2; if(mat[j][k]==0) flg=3; for(l=k+1;l<N;l++){ switch(flg){ case 1: if(mat[j][l]==0 && mat[i][l]==1 && mat[k][l]==1){ num++; } break; case 2: if(mat[k][l]==0 && mat[j][l]==1 && mat[i][l]==1){ num++; } break; case 3: if(mat[i][l]==0 && mat[k][l]==1 && mat[j][l]==1){ num++; } break; } } } } } printf("%d\n",num); return 0; }