제출 #334713

#제출 시각아이디문제언어결과실행 시간메모리
334713ivan_tudorRed-blue table (IZhO19_stones)C++14
100 / 100
81 ms5356 KiB
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 5;
int mat[N][N]; // +1 + -1 -
void print(int n, int m, bool flip){
  if(flip)
    swap(n, m);
  for(int i=1; i<=n; i++){
    for(int j=1; j<=m;j++){
      char out;
      if(flip){
        if(mat[j][i] * (-1) == 1)
          out = '+';
        else
          out = '-';
      }
      else{
        if(mat[i][j] == 1)
          out = '+';
        else
          out = '-';
      }
      cout<<out;
    }
    cout<<"\n";
  }
}
inline int mid(int n){
  int m = n/2;
  while(m <= n- m)
    m++;
  return m;
}
int extra[N];
void solve(){
  int n, m;
  bool flip = false;
  cin>>n>>m;
  if(n > m){
    swap(n, m);
    flip = true;
  }
  for(int i=1;i<=n;i++){
    for(int j =1; j<=m;j++)
       mat[i][j] = -1;
  }
  for(int i=1;i<=m;i++){
    extra[i] = n - mid(n);
  }
  int ans = m;
  for(int i=1; i<=n;i++){
    priority_queue<pair<int, int>> pq;
    for(int j = 1; j<=m;j++){
      if(extra[j]){
        pq.push({extra[j], j});
      }
    }
    int k = mid(m);
    if(pq.size() <k )
      break;
    while(k--){
      auto x = pq.top();
      pq.pop();
      mat[i][x.second] = 1;
      extra[x.second]--;
    }
    ans++;
  }
  cout<<ans<<"\n";
  print(n, m , flip);
}
int main()
{
  //freopen(".in","r",stdin);
  ios::sync_with_stdio(false);
  cin.tie(0),cout.tie(0);
  int nrt;
  cin>>nrt;
  for(int i=1;i<=nrt;i++){
    solve();
  }
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

stones.cpp: In function 'void solve()':
stones.cpp:59:18: warning: comparison of integer expressions of different signedness: 'std::priority_queue<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   59 |     if(pq.size() <k )
      |        ~~~~~~~~~~^~
#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...