제출 #769042

#제출 시각아이디문제언어결과실행 시간메모리
769042t6twotwo식물 비교 (IOI20_plants)C++17
14 / 100
4043 ms6996 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; using ll = long long; int N, K; vector<int> R, A, pfs; void init(int k, std::vector<int> r) { K = k, R = r; N = R.size(); A.resize(N, -1); if (K == 2) { pfs.resize(N + 1); for (int i = 0; i < N; i++) { pfs[i + 1] = pfs[i] + R[i]; } return; } for (int i = 0; i < N; i++) { vector<int> v; for (int j = 0; j < N; j++) { if (A[j] == -1 && R[j] == K - 1) { v.push_back(j); } } int m = v.size(), p; if (m == 1 || N - v[m - 1] + v[0] >= K) { p = v[0]; } else { for (int j = 0; j + 1 < m; j++) { if (v[j + 1] - v[j] >= K) { p = v[j + 1]; } } } A[p] = i; for (int j = 1; j < K; j++) { R[(p - j + N) % N]++; } } } int compare_plants(int x, int y) { if (K == 2) { if (pfs[y] - pfs[x] == 0) { return 1; } if (pfs[y] - pfs[x] == y - x) { return -1; } if (pfs[N] - pfs[y] + pfs[x] == 0) { return -1; } if (pfs[N] - pfs[y] + pfs[x] == N - y + x) { return 1; } } return A[x] > A[y] ? 1 : -1; }

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

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:24:21: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   24 |   int m = v.size(), p;
      |                     ^
#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...