How to Solve This Type of Problem..
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}
/*#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}
*/
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}
#include<iostream>
- shashi kant December 30, 2015using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
long int a[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
a[k][j]=0;
for(int j=0;j<n;j++)
{
int c;
cin>>c;
if(c)
{
for(int k=99;k>=100-c;k--)
{
a[k][j]=1;
}
}
}
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
{
cout<<a[k][j]<<" ";
}
cout<<endl;
}
int max=0,d;
int l[100];
//difreence array
int diff_arr[100][n];
for(int k=0;k<100;k++)
for(int j=0;j<n;j++)
diff_arr[k][j]=0;
for(int i=99;i>=0;i--)
l[i]=n-1;
for(int j=n-1;j>=0;j--)
{
for(int i=99;i>=0;i--)
{
if(a[i][j]==1)
{
d=l[i]-j;
diff_arr[i][j]=d;
if(max<d)
max=d;
l[i]--;
}
else
{
// cout<<l[i]<<endl;
break;
}
}
}
/* cout<<endl;
for(int k=0;k<100;k++)
{
for(int j=0;j<n;j++)
cout<<diff_arr[k][j]<<" ";
cout<<endl;
}
*/
cout<<max<<endl;
}
}