# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
404349 | 2021-05-14T08:44:33 Z | Ruxandra985 | Red-blue table (IZhO19_stones) | C++14 | 42 ms | 2024 KB |
#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); for (;t;t--){ fscanf (fin,"%d%d",&n,&m); if (n >= m){ for (i = 1 ; i <= n ; i++){ for (j = 1 ; j <= m ; j++){ a[i][j] = '+'; } } opt = 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 / 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; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Incorrect | 1 ms | 300 KB | in the table A+B is not equal to 5 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 332 KB | in the table A+B is not equal to 21 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Incorrect | 1 ms | 300 KB | in the table A+B is not equal to 5 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 41 ms | 1308 KB | Output is correct |
2 | Correct | 42 ms | 1916 KB | Output is correct |
3 | Correct | 40 ms | 2024 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 40 ms | 1460 KB | in the table A+B is not equal to 46 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Incorrect | 1 ms | 300 KB | in the table A+B is not equal to 5 |