Submission #236948

#TimeUsernameProblemLanguageResultExecution timeMemory
236948crossing0verGondola (IOI14_gondola)C++17
20 / 100
33 ms5240 KiB
#include<bits/stdc++.h> #include "gondola.h" using namespace std; const int MAXN = 1E5+5; int n,a[MAXN]; int valid(int n1, int inputSeq[]) { n = n1; int pos = -1; for (int i = 0; i < n; i++) { a[i] = inputSeq[i]; if (a[i] <= n) pos = i; } if (pos != -1) { int x = (a[pos] - pos - 1)%n; if (x <0) x+= n; int b[MAXN]; for (int i = 0; i < n; i++) { b[(x + i)%n] = a[i]; } for (int i = 0;i < n; i++) a[i] = b[i]; } set<int> s; for (int i = 0; i < n; i++) { if (a[i] < n) { if (a[i] != i + 1) return 0; } s.insert(a[i]); } if (s.size() != n) return 0; return 1; } int replacement(int n1, int gondolaSeq[], int replacementSeq[]){ valid(n1,gondolaSeq); vector<int> v; for (int i = 0; i < n ;i++) { if (a[i] > n) { v.push_back(a[i]); } } sort (v.begin(),v.end()); int last = n; vector<int> b(n+1); vector<int> g; for (int i = 0; i < n; i++) if (a[i] <= n) b[a[i]] = 1; for (int i = 1; i <= n; i++) { if (!b[i]) g.push_back(b[i]); } int cnt = 0; int val = n+1; vector<bool> good(1e6); for (int i = 0; i < v.size(); i++) good [v[i]] = 1; if (v.size() == 0) return 0; int mx = v.back() + 1; while (val != mx) for (int i = 0; i < g.size(); i++) { if (!good[ g[i] ]) { replacementSeq[cnt] = g[i]; g[i] = val; val++; cnt++; } } return cnt; } int countReplacement(int n, int inputSeq[]) { return 0;} /* main() { int n; cin >> n; int inputseq[n]; for (int i = 0;i < n; i++) cin >> inputseq[i]; // cout << (n,inputseq); } */

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (s.size() != n) return 0;
      ~~~~~~~~~^~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:55:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < v.size(); i++)
                  ~~^~~~~~~~~~
gondola.cpp:59:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (val != mx)   for (int i = 0; i < g.size(); i++) {
                                      ~~^~~~~~~~~~
gondola.cpp:43:6: warning: unused variable 'last' [-Wunused-variable]
  int last = n;
      ^~~~
#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...