Submission #819156

#TimeUsernameProblemLanguageResultExecution timeMemory
819156andecaandeciGondola (IOI14_gondola)C++17
25 / 100
19 ms5008 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; using pii=pair<int,int>; #define SETIO cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false); #define fi first #define se second #define pb push_back #define SORT(v) sort(begin(v),end(v)) #define REV(v) reverse(begin(v),end(v)) #define FORI(v) for(auto i:v) #define REP(i,o,n) for(int i=o;i<n;i++) #define int long long const int mod = 1e9+7; #undef int int valid(int n, int inputSeq[]) #define int long long { set<int> st; int cur=-1; REP(i,0,n) { st.insert(inputSeq[i]); if(inputSeq[i]<=n){ if(cur!=-1)if(cur!=inputSeq[i])return 0; cur=inputSeq[i]; } if(cur!=-1)cur++; if(cur==n+1)cur=1; } if(st.size()!=n)return 0; return 1; } //---------------------- #undef int int replacement(int n, int gondolaSeq[], int replacementSeq[]) #define int long long { return -2; } //---------------------- #undef int int countReplacement(int n, int inputSeq[]) #define int long long { if(!valid(n, inputSeq))return 0; vector<int> overs; REP(i,0,n){ int q=inputSeq[i]; if(q>n)overs.pb(q); } SORT(overs); REV(overs); int cur=n; int ans=1; if(overs.size()==n)REP(i,1,n)ans*=(i+1),ans%=mod; while(overs.size()){ cur++; if(cur==overs.back()){overs.pop_back();continue;} ans*=overs.size(); ans%=mod; } return ans; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:32:15: warning: comparison of integer expressions of different signedness: 'std::set<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |   if(st.size()!=n)return 0;
      |      ~~~~~~~~~^~~
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:61:18: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   61 |   if(overs.size()==n)REP(i,1,n)ans*=(i+1),ans%=mod;
      |      ~~~~~~~~~~~~^~~
#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...