Submission #771761

#TimeUsernameProblemLanguageResultExecution timeMemory
771761khshgComparing Plants (IOI20_plants)C++14
0 / 100
1 ms300 KiB
#include"plants.h" #include<bits/stdc++.h> using namespace std; vector<int> know, r; int N; int goR = 0; void init(int k, vector<int> _r) { swap(r, _r); N = (int)r.size(); for(int i = 0; i + 1 < N; ++i) { if(r[i] != r[i + 1] && r[i + 1]) { goR = N - 1 - i; break; } } rotate(r.rbegin(), r.rbegin() + goR, r.rend()); int cnt = 0; for(int i = 1; i < N; ++i) { cnt += (r[i - 1] != r[i] && r[i - 1]); } if(cnt == 1) { for(int i = 0; r[i]; ++i) { know.push_back(i); } for(int i = N - 1; know.size() + 1 < N; --i) { know.push_back(i); } } return; } int compare_plants(int x, int y) { x += goR; y += goR; x %= N; y %= N; if((int)know.size()) { return know[x] < know[y] ? -1 : 1; } if(x == 0 && y == N - 1) return r[y] ? 1 : -1; if(y - x > 1) { return 0; } return r[x] ? -1 : 1; }

Compilation message (stderr)

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:27:38: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   27 |   for(int i = N - 1; know.size() + 1 < N; --i) {
      |                      ~~~~~~~~~~~~~~~~^~~
#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...