답안 #501530

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
501530 2022-01-03T19:43:39 Z DragonO_o Red-blue table (IZhO19_stones) C++14
15 / 100
64 ms 1856 KB
#include <bits/stdc++.h>

using namespace std;

#define x first
#define y second
#define pb push_back
#define all(a) a.begin(),a.end()
#define int long long

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef pair<int,int>pi;
typedef pair<ll,ll>pll;
typedef vector<ll>vll;
typedef vector<int>vi;
typedef vector<bool>vb;
typedef vector<vi>vvi;
typedef vector<vll>vvll;
typedef vector<pi>vpi;
typedef vector<pll>vpll;

const int N=1e3+99;

char a[N][N];

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int tt;
    cin>>tt;
    while(tt--){
        int n,m;
        cin>>n>>m;
//        cout<<max(n,m)+(min(n,m)-1)/2*max(n,m)/((max(n,m)+2)/2)<<"\n";
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                a[i][j]='$';
            }
        }
        multiset<pi>st;
        if(n<=m){
            for(int i=1;i<=m;++i){
                st.insert({0,i});
            }
            int cnt=0;
            for(int i=1;i<=n;++i){
                int cur=0;
                bool ok=1;
                while(cur<(m+2)/2){
                    auto [c,j]=*st.begin();
                    if(c>=(n-1)/2){
                        ok=false;
                        break;
                    }
                    else{
                        st.erase(st.begin());
                        st.insert({++c,j});
                        a[i][j]='+';
                        cur++;
                    }
                }
                if(ok){
                    cnt++;
                }
            }
            cout<<m+cnt<<"\n";
            for(int i=1;i<=n;++i){
                for(int j=1;j<=m;++j){
                    if(a[i][j]=='+'){
                        cout<<'+';
                    }
                    else{
                        cout<<'-';
                    }
                }
                cout<<"\n";
            }
        }
//        else{
//            for(int i=1;i<=n;++i){
//                st.insert({0,i});
//            }
//            int cnt=0;
//            for(int i=1;i<=m;++i){
//                int cur=0;
//                bool ok=1;
//                while(cur<(n+2)/2){
//                    auto [c,j]=*st.begin();
//                    if(c>=(m-1)/2){
//                        ok=false;
//                        break;
//                    }
//                    else{
//                        st.erase(st.begin());
//                        st.insert({++c,j});
//                        a[i][j]='-';
//                        cur++;
//                    }
//                }
//                if(ok){
//                    cnt++;
//                }
//            }
//            cout<<n+cnt<<"\n";
//            for(int i=1;i<=n;++i){
//                for(int j=1;j<=m;++j){
//                    if(a[i][j]=='-'){
//                        cout<<'-';
//                    }
//                    else{
//                        cout<<'+';
//                    }
//                }
//                cout<<"\n";
//            }
//        }
    }
}

Compilation message

stones.cpp: In function 'int main()':
stones.cpp:53:26: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   53 |                     auto [c,j]=*st.begin();
      |                          ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Wrong answer
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Wrong answer
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Wrong answer
# 결과 실행 시간 메모리 Grader output
1 Incorrect 33 ms 916 KB Wrong answer
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 64 ms 1468 KB Output is correct
2 Correct 56 ms 1856 KB Output is correct
3 Correct 52 ms 1632 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Wrong answer