Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: Jokul
Problemset: กราฟสัญญาณดิจิทัล
Language: c
Time: 0.002 second
Submitted On: 2025-10-11 16:27:15
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
char s[101];
int n,l;
scanf("%s",s);
if(s[0]=='0'||s[0]=='1'){
l=strlen(s);
scanf("%d",&n);
char a[n][(n-1)*(l)+2];
for(int i=0;i<n;i++)
{
for(int j=0;j<=(n-1)*(l);j++)
{
a[i][j]='_';
}
}
a[0][0]='X';
////////////////////////////////////
if(s[0]=='0')
{
for(int i=0;i<n;i++)
{
a[i][0]='X';
}
}
for(int i=0;i<n;i++)
{
for(int j=1;j<=(n-1)*(l);j++)
{
if(s[(j-1)/(n-1)]=='0')
{
a[n-1][j]='X';
}
if(s[(j-1)/(n-1)]=='1')
{
a[0][j]='X';
}
}
}
for(int i=0;i<n;i++)
{
for(int j=1;j<(n-1)*(l);j++)
{
if((j-1)/(n-1)!=j/(n-1)&&s[(j-1)/(n-1)]!=s[j/(n-1)])
{
a[i][j]='X';
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<=(n-1)*(l);j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
}
else{
int t=strlen(s);
int trans[t];
for(int i=0;i<t;i++)
{
trans[i]=s[i];
}
/////////////////////////////////////////
int base2[t],mul=1;
for(int i=0;i<t;i++)
{
base2[i]=0;
}
for(int i=0;i<t;i++)
{
mul=1;
while(trans[i]>0)
{
base2[i]=base2[i]+(trans[i]%2)*mul;
mul=mul*10;
trans[i]=trans[i]/2;
}
}
int l=0,eachl[t];
for(int i=0;i<t;i++)
{
l=l+log10(base2[i]*10);
eachl[i]=log10(base2[i])+2;
//printf("%d ",base2[i]);
//printf("%d",eachl[i]);
}
l=l+t;
int te=l-1;
//printf("%d ",l);
char s[l];
for(int i=t-1;i>=0;i--)
{
for(int j=0;j<eachl[i];j++)
{
s[te]='0'+(base2[i]%10);
// printf("%c ",s[te]);
base2[i]=base2[i]/10;
te--;
}
}
//printf("\n%d\n",te);
/* for(int i=0;i<l;i++)
{
printf("%c",s[i]);
}*/
scanf("%d",&n);
char a[n][(n-1)*(l)+2];
for(int i=0;i<n;i++)
{
for(int j=0;j<=(n-1)*(l);j++)
{
a[i][j]='_';
}
}
a[0][0]='X';
////////////////////////////////////
if(s[0]=='0')
{
for(int i=0;i<n;i++)
{
a[i][0]='X';
}
}
for(int i=0;i<n;i++)
{
for(int j=1;j<=(n-1)*(l);j++)
{
if(s[(j-1)/(n-1)]=='0')
{
a[n-1][j]='X';
}
if(s[(j-1)/(n-1)]=='1')
{
a[0][j]='X';
}
}
}
for(int i=0;i<n;i++)
{
for(int j=1;j<(n-1)*(l);j++)
{
if((j-1)/(n-1)!=j/(n-1)&&s[(j-1)/(n-1)]!=s[j/(n-1)])
{
a[i][j]='X';
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<=(n-1)*(l);j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
}
}