Submission #396904

#TimeUsernameProblemLanguageResultExecution timeMemory
396904definitelynotmeeGondola (IOI14_gondola)C++98
55 / 100
32 ms4140 KiB
#include <bits/stdc++.h>
#include "gondola.h"
#define mp make_pair
#define mt make_tuple
#define ff first
#define ss second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const ll INFL = (1LL<<62)-1;
const int INF = (1<<30)-1;
const int MAXN = 0;
 
 
int valid(int n, int v[]){
    int cur = -1;
    unordered_set<int> s;
    for(int i = 0; i < n; i++){
        if(s.count(v[i]))
            return 0;
        s.insert(v[i]);
        if(cur==-1){
            if(v[i] <= n)
                cur = v[i];
        }
        if(cur!=-1){
            if(v[i] <= n){
                if(cur!=v[i])
                    return 0;
            }
            cur++;
            if(cur==n+1)
                cur-=n;
        }
    }
    return 1;
}
int replacement(int n, int v[], int resp[]){
 
    int vproper[n];
    int refid = -1, refv; 
    int r;
    map<int,int> m;
    for(int i = 0; i < n; i++){
        if(v[i] > n){
            m.insert({v[i],i});
        } else if(refid==-1){
            refid = i;
            refv = v[i]-1;
        }
    }
    if(refid==-1){
        refv = 0;
        refid = 0;
    }
    refid-=refv;
    for(int i = 0; i < n; i++){
        vproper[i] = (i-refid+n)%n + 1;
    }
    int ptr = 0;
 
    for(int i = n+1; i <=( m.empty() ? 0 : m.rbegin()->first); i++){
        
        if(m.count(i)){
            resp[ptr++] = vproper[m[i]];
            vproper[m[i]] = i;
            m.erase(i);
 
        }else {
            resp[ptr++] = vproper[m.rbegin()->second];
            vproper[m.rbegin()->second] = i;
        }
        //cerr << (m.empty()) << endl;
    }
    return ptr;
}
int countReplacement(int n, int v[]){
 
}

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:43:9: warning: unused variable 'r' [-Wunused-variable]
   43 |     int r;
      |         ^
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:80:1: warning: no return statement in function returning non-void [-Wreturn-type]
   80 | }
      | ^
#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...