Submission #902809

#TimeUsernameProblemLanguageResultExecution timeMemory
902809Muhammad_AneeqGondola (IOI14_gondola)C++17
25 / 100
30 ms5336 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=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]; } } set<int>s; for (auto i:f) s.insert(i); int req=(ind+n+1-val)%n; d={}; for (int i=1;i<=n;i++) { d[req++]=i; req%=n; } vector<pair<int,int>>w; for (int i=0;i<n;i++) w.push_back({gondolaSeq[i],i}); sort(begin(w),end(w)); int g=0; for (int k=0;k<n;k++) { int i=d[w[k].second]; int req=w[k].second; auto x=s.lower_bound(i); if (x==s.end()||*x!=i) continue; vector<int>e; while (x!=s.end()&&(*x)<=gondolaSeq[req]) { replacementSeq[g++]=*x; e.push_back(*x); x++; } for (auto j:e) s.erase(j); } return f.size(); } 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...