# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
1063723 |
2024-08-18T00:20:11 Z |
pawned |
Gondola (IOI14_gondola) |
C++17 |
|
18 ms |
5972 KB |
#pragma GCC optimize("O1,O2,O3,Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
typedef long long ll;
typedef pair<ll, ll> ii;
typedef vector<ll> vi;
#include "gondola.h"
int valid(int N, int inputSeq[]) {
vi a;
for (int i = 0; i < N; i++) {
a.pb(inputSeq[i] - 1);
}
int fpos = -1; // fixed position
int fval = -1; // fixed val at position
for (int i = 0; i < N; i++) {
if (a[i] < N) {
fpos = i;
fval = a[i];
}
}
vi b;
if (fval > fpos) {
int s = fval - fpos;
for (int i = N - s; i < N; i++) {
b.pb(a[i]);
}
for (int i = 0; i < N - s; i++) {
b.pb(a[i]);
}
}
else {
int s = fpos - fval;
for (int i = s; i < N; i++) {
b.pb(a[i]);
}
for (int i = 0; i < s; i++) {
b.pb(a[i]);
}
}
for (int i = 0; i < N; i++) {
if (b[i] < N) {
if (b[i] != i)
return 0;
}
}
// all values must be diff
set<int> allv;
for (int x : b)
allv.insert(x);
if (allv.size() != N)
return 0;
return 1;
}
int replacement(int N, int gondolaSeq[], int replacementSeq[]) {
vi a;
for (int i = 0; i < N; i++) {
a.pb(gondolaSeq[i] - 1);
}
int fpos = -1; // fixed position
int fval = -1; // fixed val at position
for (int i = 0; i < N; i++) {
if (a[i] < N) {
fpos = i;
fval = a[i];
}
}
vi b;
if (fpos == -1) {
b = a;
}
else if (fval > fpos) {
int s = fval - fpos;
for (int i = N - s; i < N; i++) {
b.pb(a[i]);
}
for (int i = 0; i < N - s; i++) {
b.pb(a[i]);
}
}
else {
int s = fpos - fval;
for (int i = s; i < N; i++) {
b.pb(a[i]);
}
for (int i = 0; i < s; i++) {
b.pb(a[i]);
}
}
/* cout<<"b: ";
for (int x : b)
cout<<x<<" ";
cout<<endl;*/
// replace 0, 1, ..., N - 1 with b
vector<ii> rep;
for (int i = 0; i < N; i++) {
if (b[i] != i)
rep.pb({b[i], i});
}
sort(rep.begin(), rep.end());
/* cout<<"rep: ";
for (ii p : rep)
cout<<"("<<p.fi<<", "<<p.se<<"); ";
cout<<endl;*/
if (rep.size() == 0) { // just 0 to N - 1
return 0;
}
int curr = N - 1;
vi ans;
for (int i = 0; i < rep.size(); i++) {
ans.pb(rep[i].se);
for (int j = curr + 1; j < rep[i].fi; j++) {
ans.pb(j);
}
curr = rep[i].fi;
}
int K = ans.size();
for (int i = 0; i < K; i++) {
replacementSeq[i] = ans[i] + 1;
}
return K;
}
int countReplacement(int N, int inputSeq[]) {
return -3;
}
// subtasks 1, 2, 3: check validity
Compilation message
gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:57:18: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
57 | if (allv.size() != N)
| ~~~~~~~~~~~~^~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:117:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
117 | for (int i = 0; i < rep.size(); i++) {
| ~~^~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
508 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
9 ms |
2804 KB |
Output is correct |
7 |
Correct |
8 ms |
2768 KB |
Output is correct |
8 |
Correct |
14 ms |
5040 KB |
Output is correct |
9 |
Correct |
4 ms |
1884 KB |
Output is correct |
10 |
Correct |
18 ms |
5972 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
8 ms |
2892 KB |
Output is correct |
7 |
Correct |
7 ms |
2984 KB |
Output is correct |
8 |
Correct |
15 ms |
5192 KB |
Output is correct |
9 |
Correct |
5 ms |
1880 KB |
Output is correct |
10 |
Correct |
17 ms |
5788 KB |
Output is correct |
11 |
Correct |
0 ms |
344 KB |
Output is correct |
12 |
Correct |
1 ms |
348 KB |
Output is correct |
13 |
Correct |
3 ms |
1492 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
7 ms |
2768 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
372 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
440 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
344 KB |
Output is correct |
4 |
Correct |
0 ms |
440 KB |
Output is correct |
5 |
Correct |
0 ms |
444 KB |
Output is correct |
6 |
Correct |
1 ms |
344 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
344 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
9 ms |
3280 KB |
Output is correct |
12 |
Correct |
10 ms |
3532 KB |
Output is correct |
13 |
Correct |
11 ms |
2912 KB |
Output is correct |
14 |
Correct |
6 ms |
3280 KB |
Output is correct |
15 |
Correct |
17 ms |
3160 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
Integer -3 violates the range [0, 1000000008] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
Integer -3 violates the range [0, 1000000008] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
344 KB |
Integer -3 violates the range [0, 1000000008] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
Integer -3 violates the range [0, 1000000008] |
2 |
Halted |
0 ms |
0 KB |
- |