Submission #145889

# Submission time Handle Problem Language Result Execution time Memory
145889 2019-08-21T10:21:21 Z davitmarg Red-blue table (IZhO19_stones) C++17
42 / 100
56 ms 1884 KB
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <unordered_map>
#include <set>
#include <queue>
#include <iomanip>
#include <stack>
#include <cassert>
#include <iterator>
#include <bitset>
#include <fstream>
#define mod 998244353ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(),v.end()
using namespace std;
 
int t,n,m,ans,rev;
char a[1003][1003],sum[1003];
int main()
{
    cin>>t;
    while(t--)
    {
        rev=0;
        cin>>n>>m;
        if(m<n)
        {
            swap(m,n);
            rev=1;
        }
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                a[i][j]='-';
 
        int k=min(((m*(n-(n/2+1)))/(m/2+1)),n);
        ans=m+k;
        int l=0,r=m/2-m+k;

        if(k)
        for(int j=1;j<=m;j++)
        {
            l++;
            r++;
            for(int i=1;i<=k;i++)
                if(((i<l || i>r) && l<=r) || (l>r && i<l && i>r) || k==1)
                    a[i][j]='+';
            l+=max(m/2-m+k,0);
            r+=max(m/2-m+k,0);
            l%=k;
            r%=k;
        }

        
        printf("%d\n",ans);
        if(!rev)
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                    printf("%c",a[i][j]);
                printf("\n");
            }
        else
        {
            for(int j=1;j<=m;j++)
            {
                for(int i=1;i<=n;i++)
                {
                    if(a[i][j]=='+')
                        a[i][j]='-';
                    else
                        a[i][j]='+';
                    
                    printf("%c",a[i][j]);
                }
                printf("\n");
            }
        }
        
 
    }
    
    
	return 0;
}
 
/*

2
1 3
3 3

 
*/
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 4 ms 376 KB Output is correct
4 Incorrect 6 ms 376 KB in the table A+B is not equal to 34
# Verdict Execution time Memory Grader output
1 Incorrect 56 ms 1400 KB in the table A+B is not equal to 116
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 55 ms 1400 KB Output is correct
2 Correct 44 ms 1884 KB Output is correct
3 Correct 40 ms 1656 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 4 ms 376 KB Output is correct
4 Incorrect 6 ms 376 KB in the table A+B is not equal to 34