Submission #902858

#TimeUsernameProblemLanguageResultExecution timeMemory
902858Muhammad_AneeqGondola (IOI14_gondola)C++17
25 / 100
29 ms5328 KiB
#include <iostream> #include <vector> #include <algorithm> #include <map> #include <set> #include "gondola.h" using namespace std; int valid(int n, int inputSeq[]) { vector<pair<int,int>>s={}; map<int,int>d; for (int i=0;i<n;i++) { d[inputSeq[i]]++; if (inputSeq[i]<=n) s.push_back({inputSeq[i],i}); } for (auto i:d) { if (i.second>1) return 0; } for (int i=0;i<s.size()-1;i++) { int z=s[i+1].second-s[i].second; if (((s[i+1].first-z+n-1)%n)+1==s[i].first) continue; return 0; } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int z=0; map<int,int>d; for (int i=0;i<n;i++) { d[gondolaSeq[i]]++; z=max(z,gondolaSeq[i]); } vector<int>f; for (int i=n+1;i<z;i++) { if (d.find(i)==d.end()) f.push_back(i); else if (d[i]>1) return 0; } int ind=0,val=1; for (int i=0;i<n;i++) { if (gondolaSeq[i]<=n) { ind=i; val=gondolaSeq[i]; } } int req=(ind+n+1-val)%n; vector<pair<int,int>>w; for (int i=0;i<n;i++) w.push_back({gondolaSeq[i],i}); sort(begin(w),end(w)); map<int,int>in; for (int i=1;i<=n;i++) { in[req++]=i; req%=n; } int g=0; reverse(begin(f),end(f)); for (int i=0;i<n;i++) { while (f.size()&&f.back()<w[i].first) { replacementSeq[g++]=f.back(); f.pop_back(); } if (d[in[w[i].second]]==0) { replacementSeq[g++]=in[w[i].second]; } } return g; } int countReplacement(int n, int inputSeq[]) { return 0; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:23:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for (int i=0;i<s.size()-1;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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...