Submission #501535

#TimeUsernameProblemLanguageResultExecution timeMemory
501535DragonO_oRed-blue table (IZhO19_stones)C++14
100 / 100
73 ms2372 KiB
#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; for(int i=1;i<=n;++i){ for(int j=1;j<=m;++j){ a[i][j]='$'; } } cout<<max(n,m)+(min(n,m)-1)/2*max(n,m)/((max(n,m)+2)/2)<<"\n"; 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++; } } 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[j][i]='-'; cur++; } } if(ok){ cnt++; } } 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 (stderr)

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();
      |                          ^
stones.cpp:90:26: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   90 |                     auto [c,j]=*st.begin();
      |                          ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...