Submission #424780

# Submission time Handle Problem Language Result Execution time Memory
424780 2021-06-12T10:05:12 Z egekabas Red-blue table (IZhO19_stones) C++14
53 / 100
39 ms 1252 KB
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<int, int> pii;
typedef pair<ld, ld> pld;
int n, m, rev;
int cur[1009];
void solve(){
    cin >> n >> m;
    
    pii use = {-1, -1};
    for(int i = 0; i <= n; ++i){
        int curans = i;
        int needother = max(0, (n+2)/2-(n-i));
        int extra = m-(m+2)/2;
        if(needother == 0)
            curans += m;
        else{
            curans += min(m, i/needother*extra);
        }
        use = max(use, {curans, i});    
        //cout << i << ' ' << curans << '\n';
    }
    for(int j = 0; j < m; ++j)
        cur[j] = 0;
    cout << use.ff << '\n';
    int left = use.ss;
    int need = max(0, (n+2)/2-(n-left));
    for(int i = 0; i < n; ++i){
        if(left){
            --left;
            int extra = m-(m+2)/2;
            for(int j = 0; j < m; ++j){
                if(extra && cur[j] < need){
                    ++cur[j];
                    --extra;
                    cout << '-';
                }
                else
                    cout << '+';
            }
        }
        else
            for(int j = 0; j < m; ++j)
                cout << '-';
        cout << '\n';
    }
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);

    int t;
    cin >> t;
    while(t--)
        solve();
    
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Incorrect 2 ms 332 KB Wrong answer in test 38 5: 40 < 41
# Verdict Execution time Memory Grader output
1 Correct 33 ms 1252 KB Output is correct
2 Correct 29 ms 1184 KB Output is correct
3 Correct 28 ms 1112 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 39 ms 1176 KB Output is correct
2 Correct 26 ms 1092 KB Output is correct
3 Correct 24 ms 976 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Incorrect 2 ms 332 KB Wrong answer in test 38 5: 40 < 41