답안 #335806

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
335806 2020-12-14T03:28:25 Z beksultan04 Red-blue table (IZhO19_stones) C++14
43 / 100
46 ms 1516 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
#define OK puts("OK");
#define fr first
#define sc second
#define ret return
#define scan1(a) scanf("%lld",&a);
#define scan2(a,b) scanf("%lld %lld",&a, &b);
#define scan3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c);
#define all(s) s.begin(),s.end()
#define pb push_back
#define endi puts("");
const int N = 1e6+12,INF=1e9+7;
int m1[N],p[N];
char q[1001][1001];
main(){
    int t;
    scan1(t)
    while (t--){
        int i,j,n,m,ans=0;
        scan2(n,m)
        if (min(n,m) <= 4){
            if (n <= m){
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        if (i < n/2+1){
                            q[i][j]='-';
                            m1[j]++;
                        }
                        else {
                            q[i][j]='+';
                            p[i]++;

                        }
                    }
                }
            }
            else {
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        if (j < m/2+1){
                            q[i][j]='+';
                            p[i]++;
                        }
                        else {
                            m1[j]++;
                            q[i][j]='-';
                        }
                    }
                }
            }
            ans = max(n,m);
            ans += min(n-1,m-1)/2;
            cout <<ans<<"\n";
            for (i=0;i<n;++i){
                for (j=0;j<m;++j){
                    cout <<q[i][j];
                }
                endi;
            }
        }
        else {
            if (n <= m){
                int cnt=0;
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        q[i][j]='-';
                    }
                }
                i=0;
                j=0;
                int mod = m/2+1;
                while (i < (n-1)/2+1){
                    q[i][j]='+';
                    cnt++;
                    j++;
                    j%=m;
                    if (cnt%mod==0)
                        i++;
                    cnt%=mod;
                }
                ans = m;
                ans+=(n-1)/2+1;
                cout <<ans<<"\n";
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        cout <<q[i][j];
                    }
                    endi;
                }
            }
            else {

                int cnt=0;
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        q[i][j]='+';
                    }
                }
                i=0;
                j=0;
                int mod = n/2+1;
                while (j < (m-1)/2+1){
                    q[i][j]='-';
                    cnt++;
                    i++;
                    i%=n;
                    if (cnt%mod==0)
                        j++;
                    cnt%=mod;
                }
                ans = n;
                ans+=(m-1)/2+1;
                cout <<ans<<"\n";
                for (i=0;i<n;++i){
                    for (j=0;j<m;++j){
                        cout <<q[i][j];
                    }
                    endi;
                }
            }
        }
    }
}

Compilation message

stones.cpp:18:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   18 | main(){
      |      ^
stones.cpp: In function 'int main()':
stones.cpp:9:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    9 | #define scan1(a) scanf("%lld",&a);
      |                  ~~~~~^~~~~~~~~~~
stones.cpp:20:5: note: in expansion of macro 'scan1'
   20 |     scan1(t)
      |     ^~~~~
stones.cpp:10:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   10 | #define scan2(a,b) scanf("%lld %lld",&a, &b);
      |                    ~~~~~^~~~~~~~~~~~~~~~~~~~
stones.cpp:23:9: note: in expansion of macro 'scan2'
   23 |         scan2(n,m)
      |         ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 3 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 44 ms 1516 KB Wrong answer in test 97 21: 108 < 116
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 46 ms 1516 KB Wrong answer in test 24 24: 36 < 44
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 3 ms 492 KB Output is correct
5 Incorrect 44 ms 1516 KB Wrong answer in test 97 21: 108 < 116
6 Halted 0 ms 0 KB -