Filling Holes with Wooden Sticks
Filling Holes with Wooden Sticks
PROBLEM STATEMENT :
SOLUTIONS :
C (Programming Language)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int r,c,i,j,n,k,flag=0;
scanf("%d %d\n",&r,&c);
char ch[r][c],s[2];
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
scanf("%s",s);
ch[i][j]=s[0];
}
}
scanf("%d\n",&n);
int x[n];
for(i=0;i<n;++i)
{
scanf("%d ",&x[i]);
}
for(j=0;j<c;++j)
{
i=0;
while(i<r&&ch[i][j]=='*') i+=1;
for(k=0;k<n;++k)
{
if(x[k]==i)
{
x[k]=-1;
k=-1;
break;
}
}
if(k==-1)
{
i-=1;
while(i>=0)
{
ch[i][j]='#';
i-=1;
}
}
}
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
printf("%c ",ch[i][j]);
}
printf("\n");
}
for(i=0;i<n;++i)
{
if(x[i]!=-1)
{
printf("%d ",x[i]);
flag=1;
}
}
if(!flag) printf("-1");
}
C++ (CPP)
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv)
{
int r,c,i,j,n,k,flag=0;
cin>>r>>c;
char ch[r][c];
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
cin>>ch[i][j];
}
}
cin>>n;
int x[n];
for(i=0;i<n;++i)
{
cin>>x[i];
}
for(j=0;j<c;++j)
{
i=0;
while(i<r&&ch[i][j]=='*') i++;
for(k=0;k<n;++k)
{
if(x[k]==i)
{
x[k]=-1;
k=-1;
break;
}
}
if(k==-1)
{
i--;
while(i>=0)
{
ch[i][j]='#';
i--;
}
}
}
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
cout<<ch[i][j]<<" ";
}
cout<<"\n";
}
for(i=0;i<n;++i)
{
if(x[i]!=-1)
{
flag=1;
cout<<x[i]<<" ";
}
}
if(!flag) cout<<"-1";
}
JAVA
import java.util.*;
public class Hello {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int r=sc.nextInt(),c=sc.nextInt(),i,j,k,n,flag=0;
char[][] ch=new char[r][c];
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
ch[i][j]=sc.next().charAt(0);
}
}
n=sc.nextInt();
int[] x=new int[n];
for(i=0;i<n;++i)
{
x[i]=sc.nextInt();
}
for(j=0;j<c;++j)
{
i=0;
while(i<r&&ch[i][j]=='*') i++;
for(k=0;k<n;++k)
{
if(x[k]==i)
{
x[k]=-1;
k=-1;
break;
}
}
if(k==-1)
{
i--;
while(i>=0)
{
ch[i][j]='#';
i--;
}
}
}
for(i=0;i<r;++i)
{
for(j=0;j<c;++j)
{
System.out.print(ch[i][j]+" ");
}
System.out.println();
}
for(i=0;i<n;++i)
{
if(x[i]!=-1)
{
flag=1;
System.out.print(x[i]+" ");
}
}
if(flag==0) System.out.println("-1");
}
}
PYTHON
r,c=map(int,input().split())
l=[input().strip().split() for i in range(r)]
n=int(input())
x=list(map(int,input().split()))
for j in range(c):
i=0
while i<r and l[i][j]=='*':
i+=1
if i in x:
x.remove(i)
i-=1
while i>=0:
l[i][j]='#'
i-=1
for i in l:
print(*i)
if x:
print(*x)
else:
print(-1)


Comments
Post a Comment