Submission #489290

#TimeUsernameProblemLanguageResultExecution timeMemory
489290QuantumK9Gondola (IOI14_gondola)C++17
55 / 100
30 ms4528 KiB
#include "gondola.h" #include <bits/stdc++.h> #define ll long long #define pb push_back #define mp make_pair using namespace std; int valid(int n, int inputSeq[]){ ll mx = n; set<ll> memo; ll i = 0; ll expectedVal; while ( i < n ){ ll use = inputSeq[i]; i++; if ( memo.find(use) != memo.end() ){ return 0; } memo.insert( use ); mx = max( mx, use ); if ( use <= n ){ expectedVal = use; break; } } for ( ; i < n; i++ ){ expectedVal++; if( expectedVal > n ){ expectedVal -= n; } //cout << inputSeq[i] << " " << expectedVal << endl; ll use = inputSeq[i]; if ( use <= n ){ if ( use != expectedVal ){ return 0; } } if ( memo.find(use) != memo.end() ){ return 0; } memo.insert( use ); mx = max( mx, use ); } //for( ll j = n+1; j <= mx; j++ ){ if ( memo.find(j) == memo.end() ){ return 0; } } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]){ vector< pair<ll, ll> > makeAyos; // newVal, expectedVal ll i = 0; ll expectedVal = -1; while ( i < n ){ ll u = gondolaSeq[i]; if ( u <= n ){ expectedVal = u; break; } i++; } // case 1 -- > at least one default value remains if ( expectedVal != -1 ){ expectedVal -= i; if ( expectedVal <= 0 ){ expectedVal += n; } } // case 2 -- > no more default values remain else{ expectedVal = 1; } //cout << "ev: " << expectedVal << endl; for( int j = 0; j < n; j++ ){ if ( gondolaSeq[j] != expectedVal ){ makeAyos.pb ( mp( gondolaSeq[j], expectedVal ) ); } expectedVal++; if ( expectedVal > n ){ expectedVal -= n; } } sort( makeAyos.begin(), makeAyos.end()); // for( int l = 0; l < makeAyos.size(); l++ ){ // cout << makeAyos[l].first << " " << makeAyos[l].second << endl; // } ll cnt = 0; ll replacementVal = n+1; for( int k = 0; k < makeAyos.size(); k++ ){ // at least one do-up replacementSeq[ cnt ] = makeAyos[k].second; cnt++; replacementVal++; while ( replacementVal <= makeAyos[k].first ){ replacementSeq[ cnt ] = replacementVal-1; cnt++; replacementVal++; } } return cnt; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:105:21: 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]
  105 |   for( int k = 0; k < makeAyos.size(); k++ ){
      |                   ~~^~~~~~~~~~~~~~~~~
#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...