Submission #584915

#TimeUsernameProblemLanguageResultExecution timeMemory
584915MazaalaiGondola (IOI14_gondola)C++17
35 / 100
13 ms4048 KiB
#include <bits/stdc++.h>
#include "gondola.h"
#define ALL(x) x.begin(),x.end()
#define LLA(x) x.rbegin(),x.rend()
#define pb push_back
using namespace std;
using PII = pair <int, int>;
int valid(int n, int nums[]) {
    int mini = 0;
    for (int i = 1; i < n; i++) 
        if (nums[i] < nums[mini]) mini = i;
    
    int st = nums[mini];
    vector <int> tmp;
    for (int i = 0; i < n; i++) {
        int j = (mini + i) % n;
        if (nums[j] == st+i) continue;
        if (nums[j] > n) tmp.pb(nums[j]);
        if (nums[j] <= n) return 0;
    }
    sort(ALL(tmp));
    for (int i = 1; i < tmp.size(); i++)
        if (tmp[i] == tmp[i-1]) return 0;
    return 1;
}
 
 
int replacement(int n, int tmp[], int res[]) {
    int mini = 0, cp[n], nums[n];
    for (int i = 0; i < n; i++) {
        if (tmp[i] < tmp[mini]) mini = i;
    }
    iota(cp, cp+n, 1);
    vector <PII> vals;
    mini = (mini - (tmp[mini] - 1)) % n;
    mini = max(mini, 0);
    for (int i = 0; i < n; i++) {
        nums[i] = tmp[(mini+i)%n];
        vals.pb({nums[i], i});
    }
    sort(ALL(vals));
    int ptr = 0, num = n+1;
    for (auto [a, b] : vals) {
        while (cp[b] != a) {
            res[ptr++] = cp[b];
            cp[b] = num++;
        }
    }
    return ptr;
}
 
 
int countReplacement(int n, int inputSeq[]) {
    return -3;
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:22:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for (int i = 1; i < tmp.size(); 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...