📄 3065043_ac_76ms_464k.c
字号:
#include <stdio.h>
#include <string.h>
int p[201][201];
int cnt[40001];
int n, m;
int main()
{
int i, j, b, k, ans;
scanf("%d%d",&n,&m);
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
p[i][j] = 1;
}
}
for (k = 1,b = 0; k <= m+1; k++,b=!b)
{
if (b==0)
{
memset(cnt,0,sizeof(cnt));
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
if (p[i][j]==1)
{
cnt[i+j]++;
}
}
}
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
if (p[i][j]==1&&((cnt[i+j]==1)^(k==m+1)))
{
p[i][j] = 0;
}
}
}
}
else
{
memset(cnt,0,sizeof(cnt));
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
if (p[i][j]==1)
{
cnt[i*j]++;
}
}
}
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
if (p[i][j]==1&&((cnt[i*j]==1)^(k==m+1)))
{
p[i][j] = 0;
}
}
}
}
}
ans = 0;
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
ans += p[i][j];
}
}
printf("%d\n",ans);
for (i = 1; i <= n; i++)
{
for (j = i+1; j <= n; j++)
{
if (p[i][j])
{
printf("%d %d\n",i,j);
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -