제출 #404351

#제출 시각아이디문제언어결과실행 시간메모리
404351Ruxandra985Red-blue table (IZhO19_stones)C++14
100 / 100
52 ms2200 KiB
#include <bits/stdc++.h> using namespace std; char a[1010][1010]; int f[1010] , ok[1010]; priority_queue <pair <int , int> > h; int main() { FILE *fin = stdin; FILE *fout = stdout; int t , n , m , i , j , opt , sol , val , poz; fscanf (fin,"%d",&t); //t = 16; //n = 1; //m = 0; for (;t;t--){ fscanf (fin,"%d%d",&n,&m); //m++; //if (m > 4){ // m = 1; // n++; //} if (n >= m){ for (i = 1 ; i <= n ; i++){ for (j = 1 ; j <= m ; j++){ a[i][j] = '+'; } } opt = m - (m / 2 + 1); sol = n; for (i = 1 ; i <= n ; i++){ h.push(make_pair(0 , i)); f[i] = 0; } for (i = 1 ; i <= m ; i++){ /// poti sa scoti n / 2 + 1 elem din h a.i toate < opt?? for (j = 1 ; j <= n / 2 + 1 ; j++){ val = -h.top().first; poz = h.top().second; h.pop(); if (val + 1 <= opt){ ok[j] = poz; } else break; } if (j > n / 2 + 1){ /// se poate sol++; for (j = 1 ; j <= n / 2 + 1 ; j++){ f[ok[j]]++; h.push(make_pair(-f[ok[j]] , ok[j])); a[ok[j]][i] = '-'; } } } fprintf (fout,"%d\n" , sol); for (i = 1 ; i <= n ; i++){ for (j = 1 ; j <= m ; j++){ fputc(a[i][j] , fout); } fprintf (fout,"\n"); } while (!h.empty()) h.pop(); } else { for (i = 1 ; i <= n ; i++){ for (j = 1 ; j <= m ; j++){ a[i][j] = '-'; } } opt = n - (n / 2 + 1); sol = m; for (i = 1 ; i <= m ; i++){ h.push(make_pair(0 , i)); f[i] = 0; } for (i = 1 ; i <= n ; i++){ /// poti sa scoti m / 2 + 1 elem din h a.i toate < opt?? for (j = 1 ; j <= m / 2 + 1 ; j++){ val = -h.top().first; poz = h.top().second; h.pop(); if (val + 1 <= opt){ ok[j] = poz; } else break; } if (j > m / 2 + 1){ /// se poate sol++; for (j = 1 ; j <= m / 2 + 1 ; j++){ f[ok[j]]++; h.push(make_pair(-f[ok[j]] , ok[j])); a[i][ok[j]] = '+'; } } } fprintf (fout,"%d\n" , sol); for (i = 1 ; i <= n ; i++){ for (j = 1 ; j <= m ; j++){ fputc(a[i][j] , fout); } fprintf (fout,"\n"); } while (!h.empty()) h.pop(); } } return 0; }

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

stones.cpp: In function 'int main()':
stones.cpp:12:12: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     fscanf (fin,"%d",&t);
      |     ~~~~~~~^~~~~~~~~~~~~
stones.cpp:18:16: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         fscanf (fin,"%d%d",&n,&m);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~
#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...