제출 #679578

#제출 시각아이디문제언어결과실행 시간메모리
679578speedyArdaGondola (IOI14_gondola)C++14
20 / 100
51 ms6020 KiB
#include "gondola.h" #include "bits/stdc++.h" using namespace std; int freq[250005]; int valid(int n, int inputSeq[]) { if(n == 1) return 1; vector<pair<int, int> > originals; set<int> elems; for(int i = 0; i < n; i++) { elems.insert(i + 1); if(freq[inputSeq[i]] > 0) return 0; freq[inputSeq[i]]++; if(inputSeq[i] <= n) { originals.push_back({inputSeq[i], i}); } } if(originals.size() <= 1) // All elements or n-1 elements are changed, so valid return 1; int res = 1; originals.push_back({originals[0].first, originals[0].second + n}); elems.erase(originals[0].first); int curr = (originals[0].first + 1) % (n+1), idx = originals[0].second + 1; if(curr == 0) curr++; for(int i = 1; i < originals.size(); i++) { //cout << res << "\n"; while(idx < originals[i].second) { if(elems.find(curr) == elems.end()) res = 0; elems.erase(curr); curr = (curr + 1) % (n+1); if(curr == 0) curr++; idx++; } if(curr != originals[i].first) res = 0; //elems.erase(originals[i].first); if(i + 1 != originals.size()) { if(elems.find(originals[i].first) == elems.end()) res = 0; elems.erase(originals[i].first); } //cout << res << " " << idx << " " << curr << " " << originals[i].first << "\n"; idx++; curr = (curr + 1) % (n+1); if(curr == 0) curr++; } return res; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { return -2; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

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

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:32:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   for(int i = 1; i < originals.size(); i++)
      |                  ~~^~~~~~~~~~~~~~~~~~
gondola.cpp:50:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |     if(i + 1 != originals.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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...