제출 #418954

#제출 시각아이디문제언어결과실행 시간메모리
418954jacquesamselRectangles (IOI19_rect)C++14
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define vvint vector<vector<int>> void print_vvint(vector<vector<int>>& grid) { for (int i = 0; i < grid.size(); i++) { for (int j = 0; j < grid[i].size(); j++) { cout << grid[i][j] << " "; } cout << endl; } } long long sumUp(int x) { long long accumulator = 0; for (int i = 1; i <= x; i++) { accumulator += i; } return accumulator; } bool is_valid(vvint& grid, int pos) { return min(min(grid[0][pos], grid[2][pos]), min(grid[1][pos-1], grid[1][pos+1])) > grid[1][pos]; } bool can_add(vvint& grid, int rightPos, int maxRow) { maxRow = max(maxRow, grid[1][rightPos+1]); if (grid[1][rightPos+1] <= maxRow) return false; if (max(grid[0][rightPos], grid[2][rightPos]) <= grid[1][rightPos]) return false; return true; } long long count_rectangles(vector<vector<int>> a) { int n = a.size(); int m = a[0].size(); long long accumulator = 0; if (a[0].size() < 3) { return 0; } // cout << is_valid(a, 2) << endl; int leftPos = 1; int rightPos = 1; int maxRow = a[1][1]; while (rightPos < m-1) { while (!is_valid(a, rightPos) && rightPos < m-2) { rightPos++; leftPos++; } while (can_add(a, rightPos, maxRow) && rightPos < m-2) { rightPos++; maxRow = max(maxRow, a[1][rightPos]); } // cout << "STRETCH: (" << leftPos<<"," << rightPos << ")" << endl; accumulator += sumUp(rightPos-leftPos+1); rightPos++; leftPos = rightPos; } return accumulator; }

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

rect.cpp: In function 'void print_vvint(std::vector<std::vector<int> >&)':
rect.cpp:6:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 |     for (int i = 0; i < grid.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
rect.cpp:7:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |         for (int j = 0; j < grid[i].size(); j++) {
      |                         ~~^~~~~~~~~~~~~~~~
rect.cpp: In function 'long long int count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:34:9: warning: unused variable 'n' [-Wunused-variable]
   34 |     int n = a.size();
      |         ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...